19. Jak zapisać liczbę: 0,125 w naturalnym kodzie binarnym i kodzie BCD.
Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego systemu liczenia istnieje zbiór cyfr, z których tworzy się liczby.
Systemy, w których wartość liczbowa cyfry zależy od jej umiejscowienia (pozycji) w liczbie, nazywają się systemami pozycyjnymi. Ilość różnych cyfr systemu nazywa się jego podstawą. Wartość liczbowa cyfry w systemie pozycyjnym określona jest przez wagę pozycji zależną od numeru pozycji. Zwykle stosuje się taki zapis liczb, w którym wagi cyfr wzrastają od prawej do lewej strony zbioru cyfr stanowiącego liczbę. Waga każdej pozycji jest P-krotnie większa od wagi pozycji poprzedniej (P- podstawa systemu). Waga pozycji " i" równa jest podstawie podniesionej do potęgi " i".
Przykład:
Liczbę 141,89 w systemie dziesiętnym (decymalnym) można zapisać w postaci następujących sum iloczynów:
141,89= 1* 102 + 4*101+ 1*100 + 8*10-1 + 9*10-2
podstawa P=10 cyfry C= 0, 1, 2, ... 9
Kod binarny.
Naturalny system dwójkowy (ang. NBS - Natural Binary System) jest najprostszym systemem pozycyjnym, w którym podstawa P = 2. System posiada dwie cyfry 0 i 1, zatem można je kodować bezpośrednio jednym bitem informacji.
Powszechnie używany w elektronice cyfrowej, gdzie minimalizacja liczby stanów
(do dwóch) pozwala na prostą implementację sprzętową odpowiadającą zazwyczaj stanom wyłączony i włączony oraz zminimalizowanie przekłamań danych. Co za tym idzie, przyjął się też w informatyce. Jak w każdym pozycyjnym systemie liczbowym, liczby zapisuje się tu jako ciągi cyfr, z których każda jest mnożnikiem kolejnej potęgi podstawy systemu.
Przykład:
1*23+0*22+1*21+0*20=8+2=10
Liczby w systemach nie dziesiętnych oznacza się czasami indeksem dolnym zapisanym w systemie dziesiętnym, a oznaczającym podstawę danego systemu. W celu podkreślenia, że liczba jest dziesiętna można również napisać obok niej indeks.
Przykład:
101012=2110
W celu przekształcenia liczby dziesiętnej na dwójkową należy kolejno dzielić ją przez 2, zapisując kolejne reszty z tego dzielenia , aż do uzyskania reszty mniejszej od 2. Reszty te stanowią kolejne cyfry dwójkowe reprezentacji liczby. Ostatnia reszta stanowi najstarszą pozycję liczby dwójkowej.
Przykład:
Liczba 83 w systemie dwójkowym:
83 : 2 reszta - 1
41 : 2 reszta - 1
20 : 2 reszta - 0
10 : 2 reszta - 0
5 : 2 reszta - 1
2 : 2 reszta - 0
1 : 2 reszta - 1
83 10= 10100112
0,1012=0*20+1*2-1+0*2-2+1*2-3=0,62510
0,00(1001)2=0,1510
0,2810=0,(01000111101011100001)2
(nawiasem oznaczono okres ułamka)
Reprezentacja stałoprzecinkowa.
W sposób arbitralny przyjmuje się, że część słowa reprezentuje część całkowitą, a pozostała część słowa część ułamkową.
Przykład:
Dla słowa ośmiobitowego przyjmijmy część całkowitą jako 5 bitów a część ułamkową jako 3 bity.
pozycja: 7 6 5 4 3 2 1 0
wartość: 24 23 22 21 20 2−1 2−2 2−3
wartość: 16 8 4 2 1 ½ ¼ 1/8
Należy pamiętać że:
• kodowanie stałoprzecinkowe może powodować błąd,
• dokładność kodowania zależna jest od długości słowa,
• niektóre liczby całkowite i wymierne nie mają swojej dokładnej reprezantacji w
skończonym kodowaniu,
• liczby niewymierne zawsze kodowane są z błędem.
Kod BCD
Zapis w kodzie BCD jest idealny, jeśli chce się wyświetlać liczby dziesiętne,
wszystko co trzeba zrobić, to zamienić każdą 4 bitową grupę BCD na odpowiadającą jej cyfrę dziesiętną i ją wyświetlić. Zapis BCD jest powszechnie używany do wprowadzania i wyprowadzania informacji numerycznej.
Jest to kod dziesiętno- dwójkowy i wymaga zastosowania grup 4 bitowych dla każdej cyfry dziesiętnej
Przykład:
13710= 0001 0011 0111BCD
Odpowiedź:
0,12510=0*20+0*2-1+0*2-2+1*2-3=0,0012
0,12510=0, 0001 0010 0101BCD
20. Jaki sposób transmisji danych (szeregowy czy równoległy) jest stosowany obecnie
częściej do podłączania peryferiów/komponentów komputerowych. Proszę wymienić
specyfikacje i określić do podłączania jakich urządzeń służą.
Systemu interfejsu.
Istnieją pojęcia systemu interfejsu oraz interfejsu, które mają odpowiednio szersze i węższe znaczenie. Są one zdefiniowane w normach, w tym także w normie PN-83/T-06536. Według normy „interfejs to połączenie między rozważanym systemem a innym systemem lub częściami jakiegoś systemu, przez które przepływa informacja". Interfejs w węższym znaczeniu to tylko układ dopasowujący, np. dopasowujący sygnały układów TTL do sygnałów układów CMOS lub dopasowujący sygnały binarne kodowane poziomami napięcia (np. logiczne O —> O V; logiczna l -> 4,5 V) do sygnałów binarnych kodowanych częstotliwością impulsów (np. logiczne O —» 1200 Hz; logiczna l —> 2400 Hz). Szersze znaczenie ma system interfejsu, co według normy oznacza „zbiór niezależnych od urządzeń elementów mechanicznych, elektrycznych i funkcjonalnych koniecznych w procesie wymiany informacji między urządzeniami". Do takiego zbioru należą „kable, złącza, nadajniki i odbiorniki linii, funkcje interfejsowe z ich opisem logicznym, linie sygnałowe, zależności czasowe oraz zasady sterowania" . System interfejsu współtworzą także protokoły wymiany informacji oraz programy sterujące pracą systemu.
Magistrala interfejsowa
Organizacja magistrali interfejsowej zależy oczywiście od rodzaju interfejsu. Bardziej rozbudowane są magistrale interfejsu równoległego. Linie magistrali interfejsu równoległego są podzielone na grupy nazwane szynami magistrali. Odrębną szynę interfejsu równoległego zawsze stanowi szyna danych licząca od 4 linii (Centronics) do 64 linii (PXI).
Szyna synchronizacji zawiera linie zapewniające koordynację czasową między wysyłaniem danych a ich odbiorem. Szyna sterowania zawiera linie przeznaczone do przesyłania sygnałów sterujących, np. sygnału zerowania, zgłoszenia przerwania i innych.
Magistrala interfejsu szeregowego może liczyć dwie lub więcej linii. Komunikaty przesyłane magistralą dwuprzewodową są zorganizowane według przemyślanych reguł i standardów, które noszą nazwę protokołów komunikacyjnych lub transmisyjnych. Ramka komunikatu zawiera zarówno adres odbiorcy, jak i pole danych, pole bitów sterowania oraz bity nadmiarowe CRC do kontroli poprawności transmisji.
Wbrew powierzchownej opinii, która szacuje liczbę linii magistrali interfejsu szeregowego na dwie, magistrala ta może liczyć nawet 35 linii, jak to jest dla interfejsu RS-485. Większość z nich to linie sterowania, ale linii danych także może być kilka (do danych odbieranych, danych wysyłanych, do kanału powrotnego). Pełna magistrala najpopularniejszego interfejsu szeregowego RS-232C liczy 22 linie. Dopiero rezygnacja z niektórych funkcji sterowania i synchronizacji umożliwia zmniejszenie liczby wykorzystywanych linii tego interfejsu do pięciu, łącznie z linią masy, a w najprostszej wersji nawet do dwóch.
Funkcje interfejsowe
- Funkcje synchronizacji, rozumiane jako koordynacja w czasie transmisji danych (lub instrukcji), w celu dopasowania szybkości nadawania do możliwości odbioru danych przez urządzenia. Najczęściej spotykanym rodzajem transmisji w systemach komputerowych jest transmisja asynchroniczna z potwierdzeniem odbioru, w tzw. trybie handshake.
Innym rodzajem jest transmisja synchroniczna.
- Funkcje buforowania i korekcji błędów. Poprawność przebiegu transmisji danych w systemie jest kontrolowana. Wykrycie błędu w pliku odebranych danych powoduje często żądanie powtórzenia przesłania pliku lub jego fragmentu (ramki), np. według procedury automatycznego powtórzenia transmisji określonego pliku danych. Wymaga to uprzedniego zgromadzenia danych w rejestrze buforowym. Buforowanie jest także potrzebne, kiedy występują niewielkie różnice w szybkości przyjmowania danych w stosunku do ich nadawania.
- Funkcje zarządzania, polegające na sterowaniu procesami i przetwarzaniu danych według uprzednio zapisanych programów i procedur. W szczególności funkcja ta reguluje dostęp do nadawania danych przez nadawców do magistrali, decyduje o kolejności zdarzeń w przypadkach konfliktowych oraz sprowadza urządzenia w systemie do stanu początkowego (zerowanie).
Obecnie do transmisji danych pomiędzy elementami systemu komputerowego wykorzystywane są magistrale szeregowe.
Uniwersalna magistrala szeregowa USB.
Uniwersalna magistrala szeregowa USB wchodzi w skład każdego komputera PC, laptopa i palmtopa. Komputer biurkowy PC (desktop) jest wyposażony w 4 do 8 gniazd USB umieszczonych na jego obudowie, a laptop w przynajmniej 2 gniazda. Przeznaczeniem USB jest podłączenie do komputera wielu urządzeń peryferyjnych. USB zapewnia unifikację okablowania łączącego te urządzenia z komputerem oraz obsłużenie komunikacji z nimi przy małej liczbie przerwań oraz adresów wejścia i wyjścia. W części sprzętowej USB składa się z głównego kontrolera -koncentratora (ang. host controller/root hub), koncentratorów USB i urządzeń USB. Do gniazda USB w komputerze można dołączyć zarówno urządzenia peryferyjne, jak i koncentratory (ang. hub). Wysłanie lub pobranie danych przez konkretne urządzenie USB nie może nastąpić z jego inicjatywy, lecz tylko wskutek okresowego odpytywania (ang. pooling) wszystkich urządzeń przez główny kontroler. Koncentrator USB jest rozdzielaczem i wzmacniaczem sygnału.
W USB możliwe są następujące rodzaje transmisji:
- transmisja z przerwaniami (ang. interrupt transfer), związana z okresowym odpytywaniem urządzeń „powolnych", np. klawiatury;
- transmisja segmentowa (ang. bulk transfer), stosowana w przypadku urządzeń o komunikacji nieregularnej, ale szybkiej, np. drukarek lub cyfrowych aparatów fotograficznych;
- transmisja izochroniczna (ang. isochronous transfer), dotyczy urządzeń pracujących w czasie rzeczywistym (np. czytnik płyty CD); polega ona na przesyłaniu danych w sposób asynchroniczny, ale przerwy między poszczególnymi znakami muszą być całkowitą krotnością czasu trwania bitu, wymaga to dobrej synchronizacji nadajnika i odbiornika danych. W odróżnieniu od transmisji izosynchronicznej, w transmisji asynchronicznej przerwy między znakami są dowolnie długie.
Cechy uniwersalnej magistrali szeregowej USB to:
- jeden typ przerwań i jedna przestrzeń adresowa USB,
- możliwość dołączenia do 127 urządzeń,
- jeden typ złącza i kabla dla urządzeń USB, kabel USB jest 4-żyłowy - o dwóch przewodach
sygnałowych (do transmisji różnicowej jednego sygnału) i dwóch przewodach zasilania
maksymalna długość kabla USB wynosi 5 m,
- szybkość transmisji mała < 1,5 Mb/s, średnia < 12 Mb/s (standard USB 1.1) lub duża < 480
Mb/s (dużą szybkość ma standard USB 2.0),
- instalacja w locie (ang. plug and play),
- możliwość zasilania peryferyjnych urządzeń USB z głównego kontrolera (komputera) przez
magistralę. Port USB w komputerze zawiera zasilacz 5 V o obciążalności 0,5 A dla
urządzeń zewnętrznych.
Wygodna cecha „instalacja w locie" skutkuje niewrażliwością komputera na czynności dołączania i odłączania urządzeń USB od magistrali. Po takiej zmianie konfiguracji systemu komputer nie musi być resetowany. Rozpoczęcie obsługi magistrali USB przez komputer następuje automatycznie. W trakcie tego procesu komputer, czyli główny koncentrator systemu USB (root hub), nadaje urządzeniu USB 7-bito-wy adres i pobiera od niego dane dotyczące m.in. trybu i szybkości transmisji.
Sygnały binarne w magistrali USB są przesyłane parą przewodów oznaczonych przez D+ i D- Różnica potencjałów między przewodami magistrali oznacza:
logiczną l dla UD+ - UD- > 200 mV,
logiczne O dla UD+ -UD-< 200 mV.
W ustalonym stanie logicznym napięcie na linii D+ lub D- musi być większe od 0,8 V. Poszczególne urządzenia USB mogą się parami komunikować z różną szybkością w ramach jednego systemu. Duża szybkość transmisji danych magistralą USB może być wykorzystana tylko wtedy, gdy obydwa komunikujące się urządzenia są przygotowane do takiej szybkości transmisji. Największe szybkości transmisji przez USB, sięgające 480 Mb/s dla standardu USB 2.0, są obecnie wykorzystywane do wymiany danych między dyskami pamięci lub do odczytywania zapisu z płyty DVD.
Magistrala szeregowa IEEE-1394
Magistralę szeregową o dużej szybkości transmisji opracowano w roku 1986 w firmie Apple Computer pod nazwą FireWire i tej nazwy firma Apple używa nadal. W roku 1995 magistrala ta uzyskała status standardu o oznaczeniu IEEE-1394 (inna nazwa tej magistrali to iLink). Magistrala IEEE-1394 pełni podobną funkcję jak USB, lecz jest przeznaczona do urządzeń wymagających znacznie większej szybkości transmisji, takich jak kamery cyfrowe, czytniki płyt DVD, urządzenia pomiarowe, nawigacyjne lub medyczne. Standardy IEEE-1394 i USB uzupełniają się wzajemnie, ale nie są zamienne. Nowsze komputery są wyposażone w porty obydwóch tych magistral. Magistrala IEEE-1394 zapewnia największą szybkość transmisji spośród wszystkich standardów interfejsu szeregowego. Większą szybkość transmisji, sięgającą l Gb/s, można osiągnąć w sieci Ethernet lOOOBaseT, która jest jednak przewidziana do łączenia komputerów, a nie urządzeń peryferyjnych.
Szybkości transmisji wynoszą:
400 Mb/s w podstawowej wersji IEEE-1394a,
800 Mb/s w wersji IEEE-1394b.
Trwają prace nad udoskonaleniem wersji IEEE-1394b i czterokrotnym zwiększeniem szybkości transmisji - aż do 3,2 Gb/s. Do tak szybkiej transmisji będzie wymagana linia światłowodowa. Magistrala jest przeznaczona zarówno do modułów montowanych w obudowie komputera, jak i do urządzeń łączonych z komputerem za pomocą kabla.
Cechy magistrali szeregowej IEEE-1394 to:
- jeden typ przerwań i jedna przestrzeń adresowa,
- możliwość dołączenia do 63 urządzeń,
- duża szybkość transmisji < 800 Mb/s,
- instalacja w locie (ang. plug and play),
- jeden typ złącza (spośród 3 oferowanych) i kabla dla urządzeń IEEE-1394;
kabel jest 6-żyłowy o 4 przewodach sygnałowych i 2 przewodach zasilania
o obciążalności 1,5 A i napięciu dopuszczalnym 30 V (moc do 45 W).
Struktura podłączenia 63 urządzeń IEEE-1394 do magistrali ma konfigurację drzewiastą. Maksymalna długość pojedynczego odcinka kabla wynosi 4,5 m; 16 urządzeń IEEE-1394 może być łączonych łańcuchowo, co daje długość magistrali 67 m dla każdego łańcucha przy założeniu maksymalnej długości każdego odcinka kabla.
Na magistrali IEEE-1394 są możliwe dwa rodzaje transmisji: asynchroniczna i izochroniczna. „Instalacja w locie" systemu IEEE-1394 nie wymaga resetowania komputera po podłączeniu kolejnego urządzenia do magistrali IEEE-1394 lub po jego odłączeniu. W czasie inicjacji systemu IEEE-1394 następuje jego samoczynna konfiguracja z nadawaniem urządzeniom numerów identyfikacyjnych (adresów) ID. W nagłówku transmitowanego pakietu danych zawarty jest numer odbiorcy danych (ang. destination ID) i numer nadawcy pakietu (ang. source ID).
W odróżnieniu od systemu USB, w którym zarządzaniem zajmuje się główny koncentrator magistrali USB, w systemie IEEE-1394 nie ma urządzeń nadrzędnych. Wszystkie urządzenia IEEE-1394 mają równe prawa w dostępie do magistrali i w wymianie danych. Nie wyklucza to oczywiście zaprogramowania jednego z nich, na przykład komputera, do częstszego żądania danych od innych urządzeń.
SATA
Szeregowa magistrala komputerowa, służąca do komunikacji pomiędzy adapterami magistrali hosta (HBA), a urządzeniami pamięci masowej, takimi jak dyski twarde, napędy optyczne i taśmowe. SATA jest bezpośrednim następcą równoległej magistrali ATA.
Przewody SATA są węższe i bardziej elastyczne od przewodów ATA, co ułatwia układanie oraz poprawia warunki chłodzenia wnętrza komputera. Również złącza SATA wykonane w technologii LIF (ang. Low Insertion Force) są zminiaturyzowane, umożliwiając zastosowanie SATA w coraz to mniejszych urządzeniach pamięci masowej ,a także zmniejszając ilość potrzebnego miejsca na gniazda kontrolera płyty głównej. Dodatkowo zespół złącz SATA (zasilający + sygnałowy) został tak zaprojektowany, że może być stosowany jako zintegrowane złącze typu hot plug. Długość przewodu SATA może dochodzić do 1 metra.
- pierwsza, najstarsza wersja SATA I umożliwia szeregową transmisję danych z maksymalną
- druga generacja (SATA II) oferuje przepustowość 3,0 Gbit/s
- trzecia generacja (SATA 3), udostępnia przepustowość 6,0 Gbit/s .
Dostępne są dyski z kontrolerem wyposażonym w magistralę SATA 3 Gbit/s, która umożliwia transfer danych z prędkością 3 gigabitów/s (rzeczywista 300 MB/s).
Podwojenie przepustowości w przypadku domowego komputera niewiele zmienia, lecz doskonale sprawdza się w przypadku serwerów, gdzie stosowane są rozbudowane macierze dyskowe lub systemy pamięci zewnętrznej.
PS/2
PS/2 - port komunikacyjny opracowany przez firmę IBM. Jest on odmianą portu szeregowego przeznaczoną do podłączania klawiatury i myszy. Złącze PS/2 jest używane w celu podłączenia klawiatury i myszy do systemu komputerowego typu PC. Złącze myszy typu PS/2 zastąpiło starsze DB-9 i RS-232, a złącze klawiatury typu PS/2 zastąpiło większe 5-pinowe złącze DIN używane w komputerach AT.
Zwykłe płyty główne nie potrafią zidentyfikować myszy lub klawiatury, jeśli te znajdują się w niewłaściwych gniazdach. Decyzja o wprowadzeniu takich samych, ale niekompatybilnych złączy spowodowała irytację konsumentów. Dla łatwego odróżnienia złącza myszy od złącza klawiatury wprowadzono oznaczenia kolorowe: kolor fioletowy dla klawiatur i zielony dla myszy, zdefiniowane w standardzie Microsoft PC 97.
Port PS/2 został prawie całkowicie wyparty przez złącze USB, ale w niektórych wypadkach jest on potrzebny, ponieważ nie zawsze złącze USB jest wykrywane (np. podczas instalacji systemu Windows).Montuje się go jeszcze w płytach głównych do PC, jednak coraz częściej spotyka się tylko jeden port PS/2 (klawiatury lub wykrywające czy podłączono klawiaturę czy mysz). W komputerach firmy Apple Inc. nie montuje się PS/2, zaś w laptopach PC do portu PS/2 podłączone jest zwykle urządzenie wskazujące typu touchpad.
Inne
Porty komputerowe, przez które dane są przekazywane w formie jednego ciągu bitów obecnie rzadko używane (zastosowania przemysłowe):
Port szeregowy jest często błędnie utożsamiany z magistralą RS-232 ponieważ port COM początkowo był najpopularniejszym portem szeregowym wyprowadzonym na zewnątrz komputera PC.
21. Ile programów można jednocześnie uruchomić w systemie MS Windows.
System operacyjny.
Jedna z wielu definicji systemu operacyjnego:
Systemem operacyjnym nazywamy specjalistyczny program (właściwie zbiór wielu zależnych od siebie programów), dzięki któremu użytkownik może porozumiewać się ze sprzętem komputerowym. System operacyjny tworzy podkład, środowisko do uruchamiania innych programów zwanych programami użytkownika. System operacyjny powinien wspomagać pracę tych programów tak, by mogły one wykonywać swoje funkcje w sposób jak najbardziej wydajny. Rzadko można ujrzeć w literaturze ogólną definicję systemu operacyjnego. Często podaje się stwierdzenie, że jest to program komputerowy o konkretnych właściwościach. Przede wszystkim jest to program dość rozległy i mocno złożony, ponieważ musi działać pomiędzy użytkownikiem i programami wysokiego poziomu a sprzętem komputerowym. Oprócz tego, najczęściej sterowanie w systemie operacyjnym działa na zasadzie tak zwanych przerwań systemowych. Przerwanie jest impulsem elektrycznym, który mówi, że w systemie zaszło jakieś zdarzenie. Może to być na przykład ruszenie myszką czy wciśnięcie klawisza klawiatury, jednak większość przerwań ma charakter bardziej złożony. Charakterystyczną cechą systemu operacyjnego jest fakt, ze jest to program, który zostaje uruchomiony jako pierwsza aplikacja po włączeniu komputera (jest to sterowane także przerwaniem systemowym mówiącym o włączeniu zasilania) i najczęściej działa do końca pracy komputera, zamyka wszystkie programy i dopiero sama się wyłącza jako ostatnia.
Wielozadaniowość.
Wielozadaniowość to organizacja systemu operacyjnego pozwalająca na kooperatywne lub konkurencyjne wykonywanie wielu zadań. Systemy wielozadaniowe posiadają wbudowane mechanizmy kontrolujące aktywne zadania - mogą przypisywać im poziomy ważności i uzależniać od nich wielkość mocy procesora, jaka poświęcana jest poszczególnym zadaniom.
W przypadku architektur z wieloma procesorami wielozadaniowość umożliwia zlecanie przez system operacyjny zadań cząstkowych do wykonania przez poszczególne procesory, co przyśpiesza wykonanie zadania i może mieć szczególne znaczenie w systemach czasu rzeczywistego.
System operacyjny wielozadaniowy umożliwia równoczesną realizację jednego lub więcej programów lub procesów. Najczęściej osiąga się to przez przydzielenie poszczególnym procesom czasu procesora w zależności od ich priorytetów. Systemy wielozadaniowe umożliwiają wykonywanie innych programów w czasie, gdy program nie wykonuje żadnych operacji.
Decyzje o przydziale procesora mogą zapadać w następujących czterech sytuacjach:
1. Stary proces przeszedł od stanu aktywności do stanu czekania (np. z powodu zamówienia
na I/O lub rozpoczęcia czekania na zakończenie działania któregoś z procesów
potomnych);
2. Stary proces przeszedł od stanu aktywności do stanu gotowości (np. w skutek wystąpienia
przerwania);
3. Stary proces przeszedł od stanu czekania do stanu gotowości (np. po zakończeniu operacji
I/O);
4. Stary proces zakończył działanie.
W sytuacjach 1 i 4, kandydatem do przydziału procesora musi być nowy proces (jeśli taki istnieje w kolejce procesów gotowych). Natomiast w sytuacjach 2 i 3 może okazać się, że staremu procesowi przydzielimy na nowo procesor. Jeżeli system nie obsługuje sytuacji 2 i 3, to mówimy o planowaniu bez wywłaszczania (tzw. wielozadaniowość koleżeńska lub kooperatywna), gdy obsługuje - możemy mówić o planowaniu, czy wielozadaniowości, z wywłaszczaniem.
W planowaniu bez wywłaszczeń proces, który otrzyma procesor jest wykonywany dopóki nie zostanie zakończony lub przejdzie w stan oczekiwania. Ta metoda planowania była używana w środowisku Ms Windows 3.x i w wielozadaniowych wersjach DOS-u.
Multitasking bez wywłaszczania nie wymaga wsparcia sprzętu, co nie oznacza wcale, wbrew literaturze, że wywłaszczanie nie może być zaimplementowane na architektury nie wspierające go - otóż może, lecz wymaga to większych nakładów programistycznych oraz bardziej obciąża sprzęt podczas działania. Programiści aplikacji dla środowisk charakteryzujących się wielozadaniowością bez wywłaszczania powinni stosować procedurę odpowiadającą za regularne zwalnianiu dostępu do procesora.
Brak wywłaszczania prowadzi do wielu problemów. Dowolna aplikacja może przejąć wszystkie zasoby systemu, może nie zwalniać procesora przez długi czas, zawieszenie aplikacji powoduje najczęściej krach systemu. Na szczęście, wszystkie współcześnie projektowane systemy, wspierają wywłaszczanie.
Tutaj też mogą pojawić się komplikacje - podobne do tych, jakie spotykamy przy przetwarzaniu równoległym. Dwa procesy, korzystające ze wspólnej przestrzeni adresowej lub dyskowej, mogą, przy nieumiejętnym ich zaimplementowaniu pozmieniać istotne dla drugiego dane. Sytuacja taka ma miejsce najczęściej podczas wywołania przerwania - proces zostaje brutalnie wywłaszczony, nie mając nawet czasu uporządkować swoich danych.
Zarządzanie pamięcią.
Aplikacje oszczędnie wykorzystujące pamięć komputera już dawno znikły bez śladu. Programy wykonujące niezbyt skomplikowane działania pożerają kilkanaście lub kilkadziesiąt megabajtów RAM. Większość autorów aplikacji nie przywiązuje wagi do obciążenia zasobów systemowych. Program ma działać bez błędów oraz powstać szybko, co często jest zgubne. Duże wymagania sprzętowe powodują zwiększenie ilości montowanej pamięci RAM. Dokładanie RAM-u do komputerów nie może trwać wiecznie. Architektura sprzętowa oraz systemowa ma swoje ograniczenia. Poszczególne systemy operacyjne Microsoftu obsługują ściśle określoną ilość pamięci: Windows XP Home i Professional 4 GB, a 64-bitowy Windows XP Professional aż 128 GB.
Wpływ RAM na jakość pracy komputera jest niezwykle istotny. Jeśli podczas uruchamiania kolejnych aplikacji twardy dysk dostaje zadyszki, a wszelkie operacje przedłużają się w nieskończoność, to typowy objaw braku RAM. Windows stara się pozyskać pamięć na kolejne programy za pomocą tzw. stronicowania.
Każdy z uruchamianych programów pracuje w obrębie jednego lub wielu procesów. O liczbie wykorzystywanych procesów decyduje twórca oprogramowania. Program to statyczny ciąg wykonywanych instrukcji, natomiast proces to środowisko jego pracy (zespół zasobów). Proces jest charakteryzowany następującymi elementami: nazwa, unikatowy identyfikator (PID), program inicjujący wykonywany kod, lista zasobów dostępnych dla procesu (np. uchwyty do portów, plików), kontekst zabezpieczeń uruchomionego procesu, co najmniej jeden wątek składowy oraz - co jest w tym wypadku najważniejsze - przydzielona wirtualna przestrzeń adresowa.
Każdy z procesów otrzymuje pulę adresów pamięci, którą może wykorzystać na swoje potrzeby. Nie są to rzeczywiste adresy pamięci RAM, lecz wirtualne. W ten sposób system operacyjny niejako "oszukuje" aplikację, dając jej dyspozycji zakres pamięci, którego może nie mieć.
Zastosowanie adresowania wirtualnego ma wiele zalet. Przede wszystkim aplikacje użytkowników nie odwołują się bezpośrednio do pamięci fizycznej, a wszelkie działania kontroluje system operacyjny. Zapobiega to używaniu przez dwie aplikacje (lub większą ich liczbę) tego samego obszaru pamięci, a ingerencja w komórki pamięci obcego procesu może prowadzić do uszkodzenia programu, w szczególnych wypadkach zaś do załamania się systemu. Drugą zaletą jest możliwość uruchamiania kolejnych programów nawet wtedy, gdy potrzeby pozostałych przekroczą fizyczną ilość pamięci.
Za zarządzanie pamięcią w systemach Windows odpowiada Menedżer pamięci wirtualnej (Virtual Memory Manager). Jego głównym zadaniem jest translacja przydzielonych procesom wirtualnych adresów na fizyczne adresy pamięci RAM. Jeśli jeden z wątków procesu musi się odwołać do zasobów przechowywanych w pamięci, menedżer zamienia adres wirtualny na fizyczny i wątek sięga do wymaganej strony danych. Kolejnym nie mniej ważnym zadaniem jest zarządzanie rozmiarem wolnej pamięci. Gdy jej ilość zaczyna się kurczyć, dane są tymczasowo przenoszone na dysk. Proces ten nosi nazwę stronicowania, pochodzącą od nazwy podstawowej jednostki przechowywania danych obsługiwanej przez Menedżera pamięci wirtualnej. Jest nią strona (page), która w systemach Microsoftu liczy 4 KB. Sporadycznie Windows XP może korzystać z tzw. dużych stron, liczących w zależności od architektury 2 lub 4 MB. Należy pamiętać, że stronicowanie znacznie spowalnia działanie systemu operacyjnego. Gdy Windows musi intensywnie wymieniać dane między pamięcią a dyskiem, wydajność dramatycznie spada. Jedynym sensownym sposobem uniknięcia częstego stronicowania jest zapewnienie systemowi odpowiedniej ilości pamięci RAM.
Plik wymiany (Swap).
Windows stara się optymalizować wykorzystanie zasobów komputera. Menedżer pamięci wirtualnej nieustannie monitoruje użytkowanie RAM-u i jeśli strony pamięci nie są używane, przenosi je do pliku wymiany.
Plik wymiany, który nosi nazwę pagefile.sys, jest domyślnie zakładany w katalogu głównym partycji startowej Windows, najczęściej oznaczonej literą C:. Ponieważ plik ma ustawione atrybuty ukryty i systemowy, po uruchomieniu Eksploratora Windows będzie niewidoczny.
Zalecany przez Microsoft rozmiar pliku pagefile.sys to 1,5 x ilość RAM w bajtach. To zalecenie jest realizowane już podczas instalacji Windows , gdy system zakłada plik o rozmiarze początkowym wynoszącym 1,5 RAM zainstalowanej w komputerze. Jeśli w twoim komputerze jest 512 MB RAM, plik wymiany będzie liczył 768 MB, przy 1 GB pamięci jego rozmiar wzrośnie do 1,5 GB. Warto pamiętać, że jest to rozmiar początkowy. Gdy zostanie uruchomione jednocześnie wiele programów, których proces stronicowania będzie wymagał więcej przestrzeni, Windows automatycznie powiększy plik. Domyślnie górna granica wynosi trzykrotność rozmiaru pamięci, np. dla systemów z 512 MB RAM maksimum to 1536 MB. W systemach opartych na architekturze x86 (32-bitowych) maksymalny rozmiar pojedynczego pliku wymiany nie może przekroczyć 4095 MB.
Biorąc pod uwagę konstrukcję systemu operacyjnego oraz samego sprzętu komputerowego, ilość programów możliwych do uruchomienia jednocześnie w systemie MS Windows zależna jest przede wszystkim od ilości posiadanej pamięci operacyjnej RAM oraz wielkości pliku wymiany. Nie bez znaczenia jest również typ i ilość posiadanych procesorów - zwiększenie ich liczby lub prędkości skutkuje możliwością komfortowej obsługi większej ilości aplikacji jednocześnie.