Wykład 2. Struktury systemów komputerowych. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Podobne dokumenty
Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Architektura systemu komputerowego

Struktura systemów komputerowych

Działanie systemu operacyjnego

Urządzenia wejścia-wyjścia

Budowa systemów komputerowych

Działanie systemu operacyjnego

Architektura komputerów

Mikroprocesor Operacje wejścia / wyjścia

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Metody obsługi zdarzeń

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Urządzenia zewnętrzne

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

Przerwania, polling, timery - wykład 9

Systemy operacyjne system przerwań

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura i administracja systemów operacyjnych

Wykład 7. Zarządzanie pamięcią

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Magistrala systemowa (System Bus)

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Wykład 14. Zagadnienia związane z systemem IO

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Systemy wejścia-wyjścia. wyjścia

Organizacja typowego mikroprocesora

Architektura komputera

Architektura komputerów

Architektura Systemów Komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

4. Procesy pojęcia podstawowe

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Programowanie współbieżne Wykład 2. Iwona Kochańska

LEKCJA TEMAT: Zasada działania komputera.

Architektura komputerów

Urządzenia wej.-wyj. Plan (1) Plan (2)

Urządzenia wej.-wyj.

Urządzenia wej.-wyj. Plan (1) Plan (2) Rodzaje urządzeń wejściawyjścia

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Systemy Operacyjne i Sieci Komputerowe

Systemy operacyjne. Struktura i zasady budowy. Rozdział 1 Wprowadzenie do systemów komputerowych

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Przerwania w nowoczesnych architekturach. Systemy Operacyjne. Obsługa przerwań - powtórka. problem przetwarzania potokowego i superskalarnego,

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Budowa Mikrokomputera

Technologia informacyjna. Urządzenia techniki komputerowej

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Technologie informacyjne - wykład 2 -

Zarządzanie pamięcią operacyjną

4. Procesy pojęcia podstawowe

Układy wejścia/wyjścia

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Architektura systemów komputerowych. dr Artur Bartoszewski

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Proces y i y w i ąt ą ki

4. Procesy pojęcia podstawowe

Systemy Operacyjne sprzęt

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

SYSTEMY WEJŚCIA-WYJŚCIA

Systemy operacyjne. Zadania systemu operacyjnego. System komputerowy. Wprowadzenie. Dr inż. Ignacy Pardyka

URZĄDZENIA WEJŚCIA-WYJŚCIA

ARCHITEKTURA PROCESORA,

Informatyka. informatyka i nauki komputerowe (computer science)

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura systemów informatycznych

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

1.1 Definicja procesu

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura komputerów

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Rodzaje sytuacji wyjątkowych. Przerwania definicja i przypadki. wyjątki, przerwania, I/O, struktury

Systemy operacyjne II

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Prezentacja systemu RTLinux

Zagadnienia związane z systemem IO

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

5. Model komunikujących się procesów, komunikaty

System komputerowy. System komputerowy

Transkrypt:

Wykład 2 Struktury systemów komputerowych Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Uproszczony schemat architektury komputera Procesor, pamięć i urządzenia we-wy podłączone są do wspólnej magistrali. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -2- Wydział Informatyki PB

Architektura komputera PC (czyli rzeczywistość bywa bardziej skomplikowana) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -3- Wydział Informatyki PB

Praca systemu komputerowego Procesor i urządzenia wejścia-wyjścia mogą pracować współbieżnie Każdy kontroler we-wy obsługuje jeden typ urządzeń Każdy kontroler-posiada lokalny bufor Procesor przesyła dane do/z pamięci oraz do/z lokalnych buforów Wejście-wyjście przeprowadzane jest pomiędzy lokalnym buforem kontrolera a urządzeniem. Kontroler informuje o zakończeniu operacji zgłaszając przerwanie. SYSTEM OPERACYJNY OPIERA SIĘ NA PRZERWANIACH!!! Wojciech Kwedlo, Wykład z Systemów Operacyjnych -4- Wydział Informatyki PB

Przerwania Przerwania programowe (ang. trap) Wywołanie systemu operacyjnego (np. specjalny rozkaz syscall w procesorach MIPS) Rozkaz pułapki (brk w x86) Sprzętowe zewnętrzne Kontroler we-wy informuje procesor o zajściu zdarzenia, na przykład Zakończenie transmisji danych. Nadejście pakietu z sieci. Przerwanie zegara. Błąd parzystości pamięci. Sprzętowe wewnętrzne, głównie niepowodzenia (ang. fault) Dzielenie przez zero Przepełnienie stosu Brak strony w pamięci (w przypadku implementacji stronicowania) Naruszenie mechanizmów ochrony. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -5- Wydział Informatyki PB

Obsługa przerwania Wykonywana przez system operacyjny Zapamiętanie stanu procesora (rejestrów i licznika rozkazów) Określenie rodzaju przerwania przepytywanie (ang. Polling) wektor przerwań (tablica adresów indeksowana numerem przerwania) Przejście do właściwej procedury obsługi Odtworzenie stanu procesora i powrót z przerwania Uwaga: Odtworzenie stanu procesora może dotyczyć innego procesu niż zapamiętanie. (przełączenie kontekstu ang. context switch). Przykład: Wykonuje się proces A Przerwanie zegara=>zapamiętanie stanu procesu A System operacyjny stwierdza że A zużył cały przydzielony kwant czasu procesora. System postanawia przekazać sterowanie procesowi B. Odtworzenie stanu procesu B(przełączenie kontekstu) => powrót z przerwania Wykonuje się proces B Wojciech Kwedlo, Wykład z Systemów Operacyjnych -6- Wydział Informatyki PB

Anatomia wywołania systemowego w Linuxie na przykładzie read(plik,bufor,ile) Program użytkownika xffffffff Library (read call) (1) Przekazanie argumentów na stosie (2) Wywołanie funkcji bibliotecznej read Return to caller Funkcja biblioteczna read User space 3 Trap to kernel Trap code in register 2 8 (3) Załadowanie numeru wywołania do rejestrów Załadowanie argumentów wywołania do rejestrów 4 Increment SP Call read 9 7 (4) Przerwanie programowe przekazanie sterowania do systemu 1 Push arguments System operacyjny Dispatch 5 6 Sys call handler User code (5) Procedura obsługi przerwania (na podstawie numeru wywołania i tablicy adresów (6) ) wykonuje skok do odpowiedniego handlera Handler powraca do funkcji read (7), a ta do programu użytkonika (8). Wojciech Kwedlo, Wykład z Systemów Operacyjnych -7- Wydział Informatyki PB

Sterowniki urządzeń we-wy (ang. device drivers) Fragment kodu jądra usytuowany pomiędzy kontrolerem we-wy a resztą jądra. Zapewnia to standaryzacje interfejsu do różnego rodzaju urządzeń. Jądro wykorzystuje ten sam interfejs do komunikacji z różnymi typami urządzeń. Sterownik komunikuje się z kontrolerem przy pomocy magistrali systemowej. Kontroler komunikuje się z urządzeniem we-wy. User space Kernel space Keyboard driver Keyboard controller User program Rest of the OS Disk driver Disk controller Wojciech Kwedlo, Wykład z Systemów Operacyjnych -8- Wydział Informatyki PB

Synchroniczne wejście-wyjście Powrót z systemu operacyjnego po przeprowadzeniu operacji we-wy Proces żądający operacji we-wy jest wstrzymywany na jej czas trwania W tym czasie procesor może zostać przydzielony innemu procesowi. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -9- Wydział Informatyki PB

Różnice w prędkości transmisji urządzeń zewnętrznych Urządzenie Keyboard Mouse 56K modem Printer / scanner USB Digital camcorder Fast Ethernet Hard drive FireWire (IEEE 1394) XGA monitor PCI bus Prędkość transmisji 10 bytes/sec 100 bytes/sec 7 KB/sec 200 KB/sec 1.5 MB/sec 4 MB/sec 12.5 MB/sec 20 MB/sec 50 MB/sec 60 MB/sec 500 MB/sec Wojciech Kwedlo, Wykład z Systemów Operacyjnych -10- Wydział Informatyki PB

Przestrzeń adresowa urządzeń we-wy 0xFFF Pamięć Porty we-wy Porty we-wy Pamięć 0 0 Odrębna przestrzeń adresowa dla portów we-wy. Specjalne rozkazy we-wy odwołujące się do portów Porty we-wy w tej samej przestrzeni adresów, co pamięć. Dostęp do portów we-wy za pomocą tych samych rozkazów, co dostęp do pamięci Wojciech Kwedlo, Wykład z Systemów Operacyjnych -11- Wydział Informatyki PB

Metoda 1: Programowane wejście-wyjście (ang. PIO) Kernel User ABCD EFGH Printed page ABCD EFGH ABCD EFGH Printed page A ABCD EFGH ABCD EFGH Printed page AB Drukowanie wiersza tekstu na drukarce. Odrębny bufor we-wy w pamięci jądra. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -12- Wydział Informatyki PB

Programowe wejście-wyjście (ciąg dalszy) Kod wykonywany przez system operacyjny copy_from_user (buffer, p, count); // kopiuj dane do bufora jądra for (j = 0; j < count; j++) { // przesyłaj odrębnie każdy znak while (*printer_status_reg!= READY) ; // czekaj aż drukarka stanie się wolna *printer_data_reg = p[j]; // wyślij pojedynczy znak do drukarki } return_to_user(); // powrót do programu użytkownika Dwa rejestry we-wy: printer_status_reg: Aktualny stan drukarki (czy może odebrać następny znak) printer_data_reg: Bajt danych wysyłany do drukarki. Problem: bezczynne oczekiwanie procesora w pętli while Drukarka jest znacznie wolniejsza od procesora Wojciech Kwedlo, Wykład z Systemów Operacyjnych -13- Wydział Informatyki PB

Metoda 2: Wejście-wyjście sterowane przerwaniami (ang. interrupt driven) Kod wykonywany przez wywołanie systemowe copy_from_user (buffer, p, count); j = 0; enable_interrupts(); while (*printer_status_reg!= READY) ; *printer_data_reg = p[0]; scheduler(); Wstrzymaj (zablokuj) bieżący proces i uruchom inny gotowy do wykonania if (count == 0) { unblock_user(); } else { *printer_data_reg = p[j]; count--; j++; } acknowledge_interrupt(); return_from_interrupt(); Odblokuj zablokowany proces (zablokowany proces może powrócić do kodu użytkownika) Urządzenie zgłasza przerwanie po odebraniu każdego bajtu. Procedura obsługi przerwania Wojciech Kwedlo, Wykład z Systemów Operacyjnych -14- Wydział Informatyki PB

Wejście-wyjście sterowane przerwaniami Zaleta: Możliwość wykorzystania procesora w czasie przeprowadzania wejścia-wyjścia Wada: Większy narzut związany z przesyłaniem jednego bajtu (przejście do procedury, obsługa, potwierdzenie, powrót przerwania) Gdy szybkość procesora jest znacznie większa od szybkości urządzenia, nie stanowi to problemu. Niech obsługa przerwania zajmuje 2 us. Przyjmijmy, że wolna drukarka zgłasza przerwania co 1 ms (prędkość transmisji 1000 bajtów/s), w takim przypadku obsługa przerwań obciąża procesor w 0.2%. Jeżeli szybki dysk zgłasza przerwania co 4us (prędkość transmisji 250 000 bajtów/s), to obsługa przerwań obciąża procesor w 50%. Gdy prędkość transmisji przekracza 500 000 bajtów na sekundę wykorzystanie tej metody (przerwanie po każdym bajcie) nie jest możliwe. Pytanie: Czy musimy angażować procesor do przesyłania danych pomiędzy urządzeniem wewnętrznym i pamięcią? Wojciech Kwedlo, Wykład z Systemów Operacyjnych -15- Wydział Informatyki PB

Metoda 3: Bezpośredni dostęp do pamięci (Direct Memory Access - DMA) Przesyłanie bloku danych pomiędzy urządzeniem a pamięcią odbywa się bez angażowania procesora. Przesłanie bloku poprzez DMA jest współbieżne z pracą procesora. Gdy nadejdzie czas przesłania kolejnego bajtu urządzenie DMA przejmuje (na chwilę) od procesora kontrole nad magistralą ang. cycle stealing. Następuje transmisja bajtu pomiędzy urządzeniem i pamięcią. W tym czasie procesor ma zablokowany dostęp do magistrali. (Nie musi to oznaczać zatrzymania pracy procesora jeżeli posiada on pamięć podręczną) Po przesłaniu bajtu urządzenie DMA zwalnia magistralę. Przerwanie generowane jest po przesłaniu kompletnego bloku danych. Bardzo mały narzut związany z przesłaniem jednego bajtu. Metoda wykorzystywana w sytuacji, w której szybkość urządzenia zewnętrznego zbliżona do szybkości pamięci. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -16- Wydział Informatyki PB

Organizacja DMA (a) DMA jest kolejnym modułem podłączonym magistrali Transfer może wymagać dwóch cykli magistrali Starsze systemy (Z80, IBM PC AT) (b) DMA zintegrowane z kontrolerem urządzenia Nowsze systemy (magistrala PCI). Wojciech Kwedlo, Wykład z Systemów Operacyjnych -17- Wydział Informatyki PB

Operacja we-wy z wykorzystaniem DMA Kod wykonywany przez wywołanie systemowe copy_from_user (buffer, p, count); set_up_dma_controller(); scheduler(); // wstrzymaj aktualny proces // i przekaż procesor innemu Kod wykonywany przez procedurę obsługi przerwania acknowledge_interrupt(); unblock_user(); // odblokuj czekający proces return_from_interrupt(); set_up_dma_controller() - zaprogramuj DMA (numer urządzania, adres bufora w pamięci, liczba bajtów) DMA zajmuje się zliczaniem bajtów i oczekiwaniem na gotowość urządzenia Wojciech Kwedlo, Wykład z Systemów Operacyjnych -18- Wydział Informatyki PB

Asynchroniczne wejście-wyjście Powrót z systemu operacyjnego po zainicjalizowaniu operacji we-wy Proces co jakiś czas sprawdza czy operacja się zakończyła W tym rozwiązaniu w czasie trwania operacji we-wy możliwe jest wykorzystanie procesora przez ten sam proces. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -19- Wydział Informatyki PB

Hierarchia pamięci Przemieszczając się w dół hierarchii Zwiększamy czas dostępu Zmniejszamy koszt jednego bajtu Wojciech Kwedlo, Wykład z Systemów Operacyjnych -20- Wydział Informatyki PB

Wykorzystanie pamięci podręcznych (ang. caching) Wykorzystanie szybkiej pamięci do przechowywania najczęściej używanych danych. Pamięć podręczna procesora. Pamięc podręczna dysku. Wymaga wprowadzenie polityki zarządzania pamięcią podręczną. Problem spójności pamięci podręcznej: (ang. cache coherency) Informacja przechowywana w pamięci podręcznej niezgodna z informacją przechowywaną w pamięci głównej Przykład 1. System dwuprocesorowy. Każdy procesor ma własną pamięć podręczną. Zawartość jednej komórki pamięci przechowywana w obydwu pamięciach podręcznych. Procesor A zapisuje tę komórkę, Procesor B próbuje odczytu... Przykład 2. Pamięć podręczna dysku. Zmodyfikowana zawartość pewnych sektorów dysku jest przechowywana przez pewien czas w pamięci operacyjnej zanim zostanie zapisana fizycznie na dysk. Jeżeli w tym czasie nastąpi załamanie systemu... Wojciech Kwedlo, Wykład z Systemów Operacyjnych -21- Wydział Informatyki PB

Mechanizmy ochrony (ang. protection) Potrzeba zapewnienia, że źle sprawujący się program nie zakłóci pracy innych programów i samego systemu operacyjnego. Program użytkownika nie może być w stanie wykonać pewnych operacji. Przykłady złego zachowania się programu Bezpośrednia komunikacja z urządzeniami wejścia-wyjścia => ochrona we-wy Dostęp do pamięci należącej do innych procesów lub do systemu => ochrona pamięci Zablokowanie przerwań, zmiana wektora przerwań => ochrona systemu przerwań Nieskończona pętla => ochrona procesora Program użytkownika nie ma prawa wykonać żadnej z powyższych operacji!!! Wojciech Kwedlo, Wykład z Systemów Operacyjnych -22- Wydział Informatyki PB

Podwójny tryb pracy Procesor może wykonywać instrukcje w jednym z dwóch trybów Tryb jądra (instrukcje wykonywane przez system operacyjny) Tryb użytkownika (instrukcje wykonywane przez program użytkownika) Przerwanie (programowe lub sprzętowe) tryb jądra System operacyjny Ustaw tryb użytkownika Tryb użyt. Program użytkownika Instrukcje uprzywilejowane mogą być wywoływane wyłącznie w trybie jądra Próba ich wykonania w trybie użytkownika powoduje przerwanie i przejście do systemu operacyjnego Wojciech Kwedlo, Wykład z Systemów Operacyjnych -23- Wydział Informatyki PB

Mechanizmy ochrony Instrukcje uprzywilejowane Instrukcje do komunikacji z urządzeniami we-wy Blokowanie/odblokowanie przerwań Zmiana wektora przerwań Aby zapewnić, że program użytkownika nigdy nie wykona się w trybie jądra Przerwanie zegara: gwarantuje ochronę procesora przed programem użytkownika z nieskończoną pętlą Wojciech Kwedlo, Wykład z Systemów Operacyjnych -24- Wydział Informatyki PB

Przykład realizacji ochrony pamięci: rejestry bazowy i limitu Rejestry te określają zakres dopuszczalnych adresów procesu. B rejestr bazowy (ang. base) L rejestr limitu A adres pamięci, do którego odwołuje się program Jeżeli B A < B+L => w porządku W przeciwnym wypadku generuj przerwanie (obsługiwane przez system operacyjny) Rozkazy zmieniające wartość rejestrów bazowego i limitu są rozkazami uprzywilejowanymi. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -25- Wydział Informatyki PB