19,20,21


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

W systemie dwójkowym można przedstawiać również liczby rzeczywiste.

Na przykład liczby dziesiętne o podstawie 2 można zapisać jako:

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 szer­sze 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 sys­temem 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 dopasowu­jący sygnały binarne kodowane poziomami napięcia (np. logiczne O —> O V; logicz­na 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 ozna­cza „zbiór niezależnych od urządzeń elementów mechanicznych, elektrycznych i funkcjonalnych koniecznych w procesie wymiany informacji między urządzenia­mi". 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 za­sady sterowania" . System interfejsu współtworzą także protokoły wymiany in­formacji oraz programy sterujące pracą systemu.

Magistrala interfejsowa

Organizacja ma­gistrali interfejsowej zależy oczywiście od rodzaju interfejsu. Bardziej rozbudowa­ne są magistrale interfejsu równoległego. Linie magistrali interfejsu równoległego są podzielone na grupy nazwane szynami magistrali. Odrębną szynę interfejsu rów­noległego zawsze stanowi szyna danych licząca od 4 linii (Centronics) do 64 li­nii (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. Komuni­katy przesyłane magistralą dwuprzewodową są zorganizowane według przemyśla­nych reguł i standardów, które noszą nazwę protokołów komunikacyjnych lub trans­misyjnych. Ramka komunikatu zawiera zarówno adres odbiorcy, jak i pole da­nych, pole bitów sterowania oraz bity nadmiarowe CRC do kontroli poprawności transmisji.

Wbrew powierzchownej opinii, która szacuje liczbę linii magistra­li 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 po­wrotnego). 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 trans­misji 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 frag­mentu (ramki), np. według procedury automatycznego powtórzenia transmi­sji 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 nadaw­ców do magistrali, decyduje o kolejności zdarzeń w przypadkach konflikto­wych oraz sprowadza urządzenia w systemie do stanu początkowego (ze­rowanie).

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 kompute­ra 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 gniaz­da. Przeznaczeniem USB jest podłączenie do komputera wielu urządzeń peryferyj­nych. USB zapewnia unifikację okablowania łączącego te urządzenia z kompute­rem 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. Koncen­trator 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 prze­syłaniu danych w sposób asynchroniczny, ale przerwy między poszczególny­mi 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 czyn­ności dołączania i odłączania urządzeń USB od magistrali. Po takiej zmianie konfi­guracji 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 szyb­kość transmisji danych magistralą USB może być wykorzystana tylko wtedy, gdy obydwa komunikujące się urządzenia są przygotowane do takiej szybkości trans­misji. Największe szybkości transmisji przez USB, sięgające 480 Mb/s dla stan­dardu 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 fir­mie 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 po­miarowe, nawigacyjne lub medyczne. Standardy IEEE-1394 i USB uzupełniają się wzajemnie, ale nie są zamienne. Nowsze komputery są wyposażone w porty oby­dwóch tych magistral. Magistrala IEEE-1394 zapewnia największą szybkość transmisji spośród wszystkich standardów interfejsu szerego­wego. Większą szybkość transmisji, sięgającą l Gb/s, można osiągnąć w sieci Ether­net 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ęk­szeniem 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 kompu­terem 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ść magi­strali 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 identy­fikacyjnych (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ęd­nych. Wszystkie urządzenia IEEE-1394 mają równe prawa w dostępie do magi­strali i w wymianie danych. Nie wyklucza to oczywiście zaprogramowania jedne­go 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.

Opracowano trzy generacje interfejsu SATA:

- pierwsza, najstarsza wersja SATA I umożliwia szeregową transmisję danych z maksymalną

przepustowością 1,5 Gbit/s

- 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):

porty RS-232,

porty RS-422,

porty RS-485,

port podczerwieni (IR).

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.





Wyszukiwarka

Podobne podstrony:
19,20,21
18,19,20,21
Pamiętniki Wampirów Vampire Diaries streszczenie opis odcinka sezon 2 19, 20, 21
Rozdział 19, 20, 21
akumulator do volkswagen transporter iii box 19 20 21 21 cat
19,20,21,22,23,24
TO JEST DO DRUKU 2 Opracowane zestawy 1,3 i 4 i 7 i 8(nc),9,10(nc),12,14,15,16 i 17(nc),19,20,21,22
g) Odpowiedzi na pytania 19,20,21
Rozdział 19,20,21,22,23
akumulator do audi 100 44 44q 18 18 quattro 19 20 21 22
20 (21)
PRS UN str 20 21 i 38 43 nr stron nadrukowane
Projekt Metodyka Programowania 2,19,20
19 20
20 21
19 20
09 1996 19 20
19,20

więcej podobnych podstron