Rok akademicki 2012/2013, Wykład nr 6 2/46 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2012/2013 Wykład nr 6 (20.04.2013) Struktura i funkcjonowanie komputera rozkazy, przerwania struktura połączeń, magistrala, DMA pamięć komputerowa, hierarchia pamięci pamięć podręczna System operacyjny definicja procesy, blok kontrolny procesu zarządzanie procesami, dwu- i pięciostanowy model procesu dr inż. Jarosław Forenc Rok akademicki 2012/2013, Wykład nr 6 3/46 Rok akademicki 2012/2013, Wykład nr 6 4/46 Podstawowe zadanie komputera to wykonywanie programu Podstawowe zadanie komputera to wykonywanie programu Program składa się z rozkazów przechowywanych w pamięci Program składa się z rozkazów przechowywanych w pamięci Rozkazy są przetwarzane w dwu krokach: Rozkazy są przetwarzane w dwu krokach: Cykl pobierania (ang. fetch): Cykl wykonywania (ang. execution): odczytanie rozkazu z pamięci licznik rozkazów (PC) lub wskaźnik instrukcji (IP) określa, który rozkaz ma być pobrany może zawierać kilka operacji, jest zależny od typu rozkazu pobrany rozkaz jest umieszczany w rejestrze rozkazu (IR) jeśli procesor nie otrzyma innego polecenia, to inkrementuje licznik PC po każdym pobraniu rozkazu. rozkaz ma formę kodu binarnego określającego działania, które ma podjąć procesor procesor interpretuje rozkaz i przeprowadza wymagane operacje.
Rok akademicki 2012/2013, Wykład nr 6 5/46 Rok akademicki 2012/2013, Wykład nr 6 6/46 W celu przyspieszenia pracy systemu stosuje się tzw. wstępne pobranie instrukcji (ang. prefetching) Graf stanów cyklu wykonania rozkazu ma następującą postać: CP1 CW1 CP2 CW2 CP3 CW3 CP1 CW1 CP2 CW2 prefeching CP3 CW3 czas CP - cykl pobierania CW - cykl wykonywania Działania procesora można podzielić na cztery grupy: przesłanie danych z procesora do pamięci lub odwrotnie przesłanie danych z procesora do modułu we-wy lub odwrotnie operacje arytmetyczne lub logiczne na danych sterowanie (np. zmiana sekwencji wykonywania programu) Wykonywanie rozkazów może zawierać kombinacje powyższych działań. (3) - analiza rozkazu w celu określenia rodzaju operacji, która ma być wykonana oraz w celu określenia argumentu (jednego lub kilku) (8) - zapisanie wyniku w pamięci lub skierowanie go do we-wy Nie wszystkie stany z powyższego schematu muszą występować. Rok akademicki 2012/2013, Wykład nr 6 7/46 Rok akademicki 2012/2013, Wykład nr 6 8/46 Graf stanów cyklu wykonania rozkazu ma następującą postać: Rozkaz: przechowywany jest w postaci binarnej ma określony format używa określonego trybu adresowania Format - sposób rozmieszczenia informacji w kodzie rozkazu Rozkaz zawiera: kod operacji (rodzaj wykonywanej operacji) argumenty (lub adresy argumentów) wykonywanych operacji Mogą wystąpić sytuacje, w których jeden rozkaz może określać operacje na wektorze liczb lub na szeregu znaków, co wymaga powtarzania operacji pobrania i/lub przechowywania.
Rok akademicki 2012/2013, Wykład nr 6 9/46 Rok akademicki 2012/2013, Wykład nr 6 10/46 Tryb adresowania - sposób określania miejsca przechowywania argumentów rozkazu (operandów) Adresowanie rejestrowe - kod rozkazu zawiera oznaczenie rejestru, w którym znajduje się argument Adresowanie natychmiastowe - argument znajduje się w kodzie rozkazu Adresowanie bezpośrednie - kod rozkazu zawiera adres komórki pamięci, w której znajduje się argument Adresowanie pośrednie - kod rozkazu zawiera oznaczenie rejestru, w którym znajduje się adres komórki pamięci, w której znajduje się argument Rok akademicki 2012/2013, Wykład nr 6 11/46 Rok akademicki 2012/2013, Wykład nr 6 12/46 - przerwania - przerwania Wykonywanie kolejnych rozkazów przez procesor może być przerwane poprzez wystąpienie tzw. przerwania (interrupt) Aby dostosować się do przerwań do cyklu rozkazu jest dodawany cykl przerwania: Można wyróżnić kilka klas przerwań: programowe - generowane po wystąpieniu błędu podczas wykonania rozkazu (np. dzielenie przez zero) zegarowe - generowane przez wewnętrzny zegar procesora we-wy - generowane przez sterownik we-wy w celu zasygnalizowania normalnego zakończenia operacji lub błędu uszkodzenie sprzętu - generowane przez uszkodzenie, np. defekt zasilania, błąd parzystości pamięci Przerwania zostały zaimplementowane w celu poprawienia efektywności przetwarzania - procesor może wykonywać inne rozkazy, gdy jest realizowana operacja we-wy. Po sygnale przerwania procesor: zawiesza wykonanie bieżącego programu i zachowuje jego kontekst ustawia licznik programu na początkowy adres programu obsługi przerwania wykonuje program obsługi przerwania wznawia wykonywanie programu użytkowego.
Rok akademicki 2012/2013, Wykład nr 6 13/46 Rok akademicki 2012/2013, Wykład nr 6 14/46 - przerwania - przerwania wielokrotne Jak działa przerwanie? Podczas obsługi jednego przerwania może pojawić się sygnał kolejnego przerwania Problem przerwań wielokrotnych rozwiązywany jest na dwa sposoby: uniemożliwienie innych przerwań, jeśli jakiekolwiek inne przerwanie jest przetwarzane określenie priorytetów przerwań - przerwanie o wyższym priorytecie powoduje przerwanie programu obsługi przerwania o niższym priorytecie. Rok akademicki 2012/2013, Wykład nr 6 15/46 Rok akademicki 2012/2013, Wykład nr 6 16/46 - struktura połączeń - struktura połączeń Struktura połączeń jest to zbiór ścieżek łączących podstawowe moduły komputera, tj. procesor, pamięć i urządzenia we-wy Struktura połączeń jest to zbiór ścieżek łączących podstawowe moduły komputera, tj. procesor, pamięć i urządzenia we-wy Pamięć: Procesor: pamięć składa się z określonej liczby słów o jednakowej długości słowa umieszczone są pod konkretnymi adresami słowo może być odczytane z pamięci lub do niej zapisane odczytuje rozkazy i dane wysyła dane po przetworzeniu steruje pracą całego systemu poprzez sygnały sterujące otrzymuje sygnały przerwań Rozkazy Dane Sygnały przerw. Procesor Sygnały ster. Dane typ operacji określają sygnały sterujące odczyt i zapis
Rok akademicki 2012/2013, Wykład nr 6 17/46 Rok akademicki 2012/2013, Wykład nr 6 18/46 - struktura połączeń - struktura połączeń Struktura połączeń jest to zbiór ścieżek łączących podstawowe moduły komputera, tj. procesor, pamięć i urządzenia we-wy Moduł wejścia-wyjścia: istnieją dwie operacje: zapis i odczyt każdy z interfejsów z urządzeniem zewnętrznym określany jest portem i ma jednoznaczny adres moduł może wysyłać sygnały przerwań do procesora Odczyt Zapis Adres Dane wew. Dane zew. Moduł we/wy Dane wew. Dane zew. Sygnał przerw. Struktura połączeń musi umożliwiać przesyłanie następujących danych: DMA - bezpośredni dostęp do pamięci: Dane Dane najczęściej procesor bezpośrednio odczytuje dane z pamięci i zapisuje oraz komunikuje się z urządzeniami we-wy w pewnych przypadkach pożądane jest umożliwienie bezpośredniej wymiany danych między we-wy a pamięcią podczas takiego przesyłania moduł we-wy odczytuje lub zapisuje rozkazy w pamięci, uwalniając procesor od odpowiedzialności za tę wymianę powyższe operacje nazywane są bezpośrednim dostępem do pamięci (ang. DMA - Direct Memory Access) Rok akademicki 2012/2013, Wykład nr 6 19/46 Rok akademicki 2012/2013, Wykład nr 6 20/46 - magistrala - magistrala Najczęściej stosowana struktura połączeń to magistrala Linie dzielą się na trzy grupy: linie danych, adresów i sterowania Magistrala jest wspólnym nośnikiem transmisji, do którego dołączonych jest wiele urządzeń, a sygnały wysyłane przez jedno z nich mogą być odbierane przez pozostałe urządzenia Magistrala składa się z wielu linii komunikacyjnych, którym przypisane jest określone znaczenie i określona funkcja Fizycznie magistrala jest zbiorem równoległych połączeń elektrycznych System komputerowy zawiera pewną liczbę różnych magistrali Linie danych: przenoszą dane między modułami systemu Magistrala łącząca główne zasoby komputera (procesor, pamięć, wejście-wyjście) nazywana jest magistralą systemową wszystkie linie danych nazywane są szyną danych liczba linii określa szerokość szyny danych (8, 16, 32, 64 bity)
Rok akademicki 2012/2013, Wykład nr 6 21/46 Rok akademicki 2012/2013, Wykład nr 6 22/46 - magistrala - magistrala Linie dzielą się na trzy grupy: linie danych, adresów i sterowania Linie dzielą się na trzy grupy: linie danych, adresów i sterowania Linie adresowe: Linie sterowania: służą do określania źródła i miejsca przeznaczenia danych przesyłanych magistralą służą do sterowania dostępem do linii danych i linii adresowych liczba linii adresowych (szerokość szyny adresowej) określa maksymalną możliwą pojemność pamięci systemu Rok akademicki 2012/2013, Wykład nr 6 23/46 Rok akademicki 2012/2013, Wykład nr 6 24/46 - struktury wielomagistralowe Systemy pamięci komputerowych W przypadku większej liczby urządzeń podłączonych do magistrali znacząco spada jej wydajność Rozwiązaniem tego problemu są struktury wielomagistralowe o określonej hierarchii Ze względu na położenie pamięci w stosunku do komputera wyróżniamy pamięć: procesora (rejestry) wewnętrzną (pamięć główna) zewnętrzną (pamięć pomocnicza - pamięci dyskowe i taśmowe) Parametry charakteryzujące pamięć: pojemność - maksymalna liczba informacji jaką można przechowywać w danej pamięci czas dostępu - czas niezbędny do zrealizowania operacji odczytu lub zapisu czas cyklu pamięci - czas dostępu plus dodatkowy czas, który musi upłynąć zanim będzie mógł nastąpić kolejny dostęp szybkość przesyłania (transferu) - maksymalna liczba danych jakie można odczytać z pamięci lub zapisać do pamięci w jednostce czasu
Rok akademicki 2012/2013, Wykład nr 6 25/46 Rok akademicki 2012/2013, Wykład nr 6 26/46 Systemy pamięci komputerowych Systemy pamięci komputerowych Ze względu na sposób dostępu do danych wyróżniamy: dostęp sekwencyjny (pamięci taśmowe) dostęp bezpośredni (pamięci dyskowe) dostęp swobodny (pamięć główna) dostęp skojarzeniowy (pamięć podręczna) Dostęp sekwencyjny: jednostka danych to rekord dostęp do rekordów jest możliwy w określonej sekwencji liniowej przejście z jednego rekordu do następnego następuje poprzez przepuszczenie i odrzucenie rekordów pośrednich czas dostępu do różnych rekordów może bardzo różnić się Dostęp bezpośredni: odczyt i zapis realizowany jest za pomocą tego samego mechanizmu poszczególne bloki (rekordy) mają unikatowy adres oparty na fizycznej lokacji dostęp jest realizowany przez bezpośredni dostęp do najbliższego otoczenia, po którym następuje sekwencyjne poszukiwanie, liczenie lub oczekiwanie w celu osiągnięcia lokacji finalnej Dostęp swobodny: każda adresowalna lokacja w pamięci ma unikatowy fizycznie wbudowany mechanizm adresowania czas dostępu jest stały i niezależny od poprzednich operacji dostępu Rok akademicki 2012/2013, Wykład nr 6 27/46 Rok akademicki 2012/2013, Wykład nr 6 28/46 Systemy pamięci komputerowych Hierarchia pamięci Dostęp skojarzeniowy: każda lokacja ma własny mechanizm adresowania czas dostępu jest stały i niezależny od poprzednich operacji dostępu słowa są wprowadzane na podstawie części swojej zawartości, a nie na podstawie całego adresu Istnieją wzajemne zależności pomiędzy parametrami pamięci: kosztem, pojemnością i czasem dostępu: mniejszy czas dostępu - większy koszt na bit większa pojemność - mniejszy koszt na bit większa pojemność - dłuższy czas dostępu W systemach komputerowych nie stosuje się jednego typu pamięci, ale hierarchię pamięci Rozpatrując hierarchię od góry do dołu obserwujemy zjawiska: malejący koszt na bit rosnącą pojemność rosnący czas dostępu malejącą częstotliwość dostępu do pamięci przez procesor
Rok akademicki 2012/2013, Wykład nr 6 29/46 Rok akademicki 2012/2013, Wykład nr 6 30/46 Półprzewodnikowa pamięć główna Półprzewodnikowa pamięć główna RAM (Random Access Memory) - pamięć o dostępie swobodnym odczyt i zapis następuje za pomocą sygnałów elektrycznych pamięć ulotna - po odłączeniu zasilania dane są tracone DRAM: przechowuje dane podobnie jak kondensator ładunek elektryczny wymaga operacji odświeżania jest mniejsza, gęściej upakowana i tańsza niż pamięć statyczna stosowana jest do budowy głównej pamięci operacyjnej komputera ROM (ang. Read-Only Memory) - pamięć stała pamięć o dostępie swobodnym przeznaczona tylko do odczytu dane są zapisywane podczas procesu wytwarzania pamięć nieulotna PROM (ang. Programmable ROM) - programowalna pamięć ROM pamięć nieulotna, może być zapisywana tylko jeden raz zapis jest realizowany elektrycznie po wyprodukowaniu SRAM: przechowuje dane za pomocą przerzutnikowych konfiguracji bramek logicznych nie wymaga operacji odświeżania jest szybsza i droższa od pamięci dynamicznej stosowana jest do budowy pamięci podręcznej Rok akademicki 2012/2013, Wykład nr 6 31/46 Rok akademicki 2012/2013, Wykład nr 6 32/46 Półprzewodnikowa pamięć główna Pamięć podręczna Inne typy pamięci: EPROM - pamięć wielokrotnie programowalna, kasowanie następuje przez naświetlanie promieniami UV EEPROM - pamięć kasowana i programowana na drodze czysto elektrycznej Flash - rozwinięcie koncepcji pamięci EEPROM, możliwe kasowanie i programowanie bez wymontowywania pamięci z urządzenia, występuje w dwóch odmianach: NOR (Flash BIOS) NAND (pen drive, karty pamięci) Zastosowanie pamięci podręcznej ma na celu przyspieszenie dostępu procesora do pamięci głównej CPU Cache RAM CPU Cache RAM Zarządca magistrali Zarządca magistrali Look-through Look-aside
Rok akademicki 2012/2013, Wykład nr 6 33/46 Rok akademicki 2012/2013, Wykład nr 6 34/46 Pamięć podręczna System operacyjny - definicja Do pamięci podręcznej jest przesyłany cały blok, gdyż ze względu na tzw. zjawisko lokalności odniesień, istnieje duże prawdopodobieństwo, że przyszłe odniesienia będą dotyczyły innych słów w tym samym bloku System operacyjny - jest to program sterujący wykonywaniem aplikacji i działający jako interfejs pomiędzy aplikacjami (użytkownikiem) a sprzętem komputerowym Warstwy systemu operacyjnego użytkownik końcowy nie jest zainteresowany sprzętem, interesują go tylko aplikacje (programy użytkowe) aplikacje są tworzone przez programistów za pomocą języków programowania Rok akademicki 2012/2013, Wykład nr 6 35/46 Rok akademicki 2012/2013, Wykład nr 6 36/46 System operacyjny - definicja Procesy System operacyjny - administrator zasobów - zarządza i przydziela zasoby systemu komputerowego oraz steruje wykonaniem programu zasób systemu - każdy element systemu, który może być przydzielony innej części systemu lub oprogramowaniu aplikacyjnemu do zasobów systemu zalicza się: czas procesora pamięć operacyjną urządzenia zewnętrzne głównym zadaniem systemu operacyjnego jest zarządzanie procesami Co to jest proces? proces - program w trakcie wykonania proces - ciąg wykonań instrukcji wyznaczanych kolejnymi wartościami licznika rozkazów wynikających z wykonywanej procedury (programu) proces - jednostka, którą można przypisać procesorowi i wykonać Proces składa się z kilku elementów: kod programu dane potrzebne programowi (zmienne, przestrzeń robocza, bufory) kontekst wykonywanego programu (stan procesu) - dane wewnętrzne, dzięki którym system operacyjny może nadzorować proces i nim sterować
Rok akademicki 2012/2013, Wykład nr 6 37/46 Rok akademicki 2012/2013, Wykład nr 6 38/46 Blok kontrolny procesu Tworzenie procesu struktura danych tworzona i zarządzana przez system operacyjny, a opisująca właściwości procesu identyfikator - unikatowy numer skojarzony z procesem, dzięki któremu można odróżnić go od innych procesów stan procesu: nowy, gotowy, uruchomiony, zablokowany, anulowany priorytet - niski, normalny, wysoki, czasu rzeczywistego licznik programu - adres kolejnego rozkazu w programie, który ma zostać wykonany wskaźniki pamięci - wskaźniki do kodu programu, danych skojarzonych z procesem, dodatkowych bloków pamięci dane kontekstowe - dane znajdujące się w rejestrach procesora, gdy proces jest wykonywany informacje na temat stanu żądań we-wy - informacje na temat urządzeń we-wy przypisanych do tego procesu w celu utworzenia nowego procesu system operacyjny tworzy blok kontrolny procesu i alokuje dla niego pamięć kiedy tworzony jest nowy proces? nowe zadanie wsadowe - w środowisku wsadowym proces jest tworzony jako reakcja na przesłane zadanie interaktywne logowanie - w środowisku interaktywnym proces jest tworzony, gdy użytkownik loguje się do systemu udostępnienie usługi przez system - system operacyjny tworzy nowy proces w celu wykonania funkcji w imieniu programu użytkownika bez zmuszania użytkownika do czekania utworzenie przez proces istniejący - program użytkownika żąda utworzenia określonej liczby procesów (przetwarzanie równoległe) proces tworzący inny proces nazywa się procesem macierzystym, a nowoutworzony proces - procesem potomnym Rok akademicki 2012/2013, Wykład nr 6 39/46 Rok akademicki 2012/2013, Wykład nr 6 40/46 Zakończenie procesu Zakończenie procesu przyczyny zakończenia pracy procesów: przyczyny zakończenia pracy procesów: normalne zakończenie - proces wykonuje wywołanie systemowe, aby poinformować system, że jego działanie zostało zakończone przekroczenie limitu czasu - proces działał zbyt długo niż określony dla niego limit czasu pracy brak pamięci - proces żąda więcej pamięci niż system może przydzielić błędny rozkaz - proces próbuje wykonać nieistniejące rozkazy rozkaz uprzywilejowany - proces próbuje wykonać rozkaz zarezerwowany dla systemu operacyjnego interwencja operatora lub systemu operacyjnego - z bliżej nieznanego powodu operator lub system operacyjny zakończył proces naruszenie pamięci - proces odwołuje się do obszaru pamięci, do którego nie ma prawa dostępu błąd ochrony - proces próbuje wykorzystać zasoby takie jak pliki, do których nie ma prawa lub próbuje je wykorzystać w niewłaściwy sposób błąd arytmetyczny - wykonanie przez proces niedozwolonej operacji arytmetycznej (np. dzielenie przez zero) zakończenie procesu macierzystego - kiedy proces macierzysty ulega zakończeniu system operacyjny może automatycznie zakończyć wszystkie jego procesy potomne żądanie wystosowane przez proces macierzysty - proces macierzysty zwykle ma prawo zakończyć swoje procesy potomne błąd we-wy - błąd odczytu lub zapisu po przekroczeniu maksymalnej liczby prób lub niedozwolonych operacji
Rok akademicki 2012/2013, Wykład nr 6 41/46 Rok akademicki 2012/2013, Wykład nr 6 42/46 Dwustanowy model procesu Dwustanowy model procesu najprostszy model polega na tym, że w dowolnej chwili proces jest wykonywany przez procesor (uruchomiony) lub nie (nie uruchomiony) procesy, które nie są uruchomione czekają w kolejce na wykonanie Program przydzielający Wejście Proces nie uruchomiony Uruchomiony proces Wyjście Przerwa system operacyjny tworząc nowy proces, tworzy blok kontrolny procesu po czym wprowadza proces do systemu jako nie uruchomiony jeśli wykonywanie procesu zostało anulowane lub zakończone, to opuszcza on system, a program przydzielający wybiera kolejny proces z kolejki, który zostanie wykonany w pewnym momencie aktualnie wykonywany proces zostaje przerwany i program przydzielający wybiera inny proces do wykonania stan poprzednio uruchomionego procesu jest zmieniany z uruchomionego na nie uruchomiony Rok akademicki 2012/2013, Wykład nr 6 43/46 Rok akademicki 2012/2013, Wykład nr 6 44/46 Pięciostanowy model procesu Pięciostanowy model procesu w dwustanowym modelu procesu kolejka działa na zasadzie FIFO, a procesor wykonuje procesy cyklicznie z kolejki problem pojawia się w przypadku, gdy kolejny proces pobierany do wykonania z kolejki jest zablokowany, gdyż oczekuje na zakończenie operacji we-wy rozwiązaniem powyższego problemu jest podział procesów nieuruchomionych na gotowe do wykonania i zablokowane uruchomiony - proces aktualnie wykonywany gotowy - proces gotowy do wykonania przy najbliższej możliwej okazji zablokowany - proces oczekujący na zakończenie operacji we-wy nowy - proces, który właśnie został utworzony (ma utworzony blok kontrolny procesu, nie został jeszcze załadowany do pamięci), ale nie został jeszcze przyjęty do grupy procesów oczekujących na wykonanie anulowany - proces, który został wstrzymany lub anulowany z jakiegoś powodu
Rok akademicki 2012/2013, Wykład nr 6 45/46 Rok akademicki 2012/2013, Wykład nr 6 46/46 Pięciostanowy model procesu Koniec wykładu nr 6 podział procesów nieuruchomionych na gotowe do wykonania i zablokowane wymaga zastosowania minimum dwóch kolejek Dziękuję za uwagę! gdy pojawia się zdarzenie system operacyjny musi przejrzeć kolejkę szukając procesów, który związane są z danym zdarzeniem w celu zapewnienia większej wydajności lepiej jest gdy dla każdego zdarzenia istnieje oddzielna kolejka