Materiały do wykładu Systemy operacyjne (SOI.B) 1 dla kierunku Informatyka

Wielkość: px
Rozpocząć pokaz od strony:

Download "Materiały do wykładu Systemy operacyjne (SOI.B) 1 dla kierunku Informatyka"

Transkrypt

1 Materiały do wykładu Systemy operacyjne (SOI.B) dla kierunku Informatyka na Wydziale EiTI PW dr inż. Tomasz Jordan Kruk 8 października 25 Wersja nieostateczna, robocza na dzień publikacji, MOŻE ULEC ZMIANOM

2 Spis treści Wprowadzenie 2 Programowanie w języku powłoki sh 3 Procesy i wątki 9 4 Wzajemne wykluczanie i synchronizacja 32 5 Zarządzanie pamięcią 46 6 Obsługa wejścia/wyjścia 74 7 System plików 85 8 Obsługa multimediów 6 9 Systemy wieloprocesorowe 23 Bezpieczeństwo 4 Bibliografia 6 i

3 Rozdział Wprowadzenie [.] Przedmiot Systemy operacyjne (I) prowadzący: dr inż. Tomasz J. Kruk, p. 53 przedmiot składa się z wykładu (6 punktów) i laboratorium (4 punktów), ocenianych niezależnie w skali punktowej (w sumie punktów). ocena z wykładu jest wystawiana na podstawie pisemnego kolokwium w trakcie semestru i egzaminu w sesji. Student ma prawo do przystąpienia do 2 terminów egzaminu. Wymagane jest uzyskanie co najmniej połowy punktów z kolokwium i egzaminu łącznie. każde z ćwiczeń laboratoryjnych jest oceniane niezależnie. Ocenę wystawia prowadzący i jest ona ostateczna. Wynik wszystkich ćwiczeń jest przeliczany na ocenę w skali -4 punktów. Wymagane jest uzyskanie co najmniej połowy punktów z laboratorium. obecność na zajęciach laboratoryjnych jest obowiązkowa. [.2] Przedmiot Systemy operacyjne (II) Zadania laboratoryjne. 4 p. - Kompilacja jądra i wywołania systemowe 2. 8 p. - Szeregowanie procesów 3. 8 p. - Synchronizacja procesów (I) 4. 8 p. - Synchronizacja procesów (II) 5. 4 p. - Zarządzanie pamięcią 6. 8 p. - System plików Skala ocen:

4 ROZDZIAŁ. WPROWADZENIE Punkty z wykładu i laboratorium są sumowane. Przedmiot zalicza 5 punktów. Szczegóły precyzuje regulamin przedmiotu. W indywidualnych przypadkach wykładowca ma prawo podwyższyć ocenę. [.3] Konspekt wykładu Systemy operacyjne. Wprowadzenie 2. Programowanie w języku interpretera poleceń 3. Procesy i wątki 4. Synchronizacja i komunikacja międzyprocesowa 5. Zarządzanie pamięcią operacyjną 6. Systemy wejścia-wyjścia 7. System plików 8. Multimedialne systemy operacyjne 9. Systemy wieloprocesorowe i rozwiązania klastrowe. Bezpieczeństwo i monitorowanie wykorzystania systemu [.4] System operacyjny Def. System operacyjny jest to zbiór programów i procedur spełniających dwie podstawowe funkcje: zarządzanie zasobami systemu komputerowego, tworzenie maszyny wirtualnej. Def. 2 Zasobem systemu jest każdy jego element sprzętowy lub programowy, który może być przydzielony danemu procesowi. [.5] Zasoby systemu operacyjnego Przez zasoby sprzętowe rozumiemy: czas procesora, pamięć operacyjną, 2

5 ROZDZIAŁ. WPROWADZENIE urządzenia zewnętrzne, inne komputery powiązane poprzez sieć teleinformatyczną. Przez zasoby programowe rozumiemy: pliki, bufory, semafory, tablice systemowe. Zasobami system zarządza w czasie i przestrzeni. [.6] Zarządzanie zasobami systemu operacyjnego Rozpatrując system operacyjny jako zarządcę zasobów można stwierdzić, ze powinien on w ogólności: śledzić zasoby systemu, narzucać strategię, która określa odbiorcę, rodzaj zasobu, moment przydziału i ilość zasobu, przydzielać zasób, odzyskiwać zasób. [.7] Tworzenie maszyny wirtualnej Tworzenie maszyny wirtualnej polega na udostępnieniu użytkownikowi abstrakcji systemu łatwiejszej do wykorzystywania/ oprogramowywania. przekształcenie maszyny rzeczywistej w maszynę o cechach wymaganych przez przyjęty tryb przetwarzania (przeznaczenie systemu komputerowego), przykładowe abstrakcje: na dysku przechowywana jest uporządkowana grupa nazwanych plików, system umożliwia współbieżne wykonywanie się aplikacji. [.8] Tryby przetwarzania tryb wsadowy, pośredni (ang. off-line, batch), autonomiczne wykorzystanie komputera bez konieczności obecności użytkownika 3

6 ROZDZIAŁ. WPROWADZENIE + duża przepustowość systemu komputerowego, możliwy długi okres oczekiwania na wyniki, ograniczone możliwości szeregowania, niemozność bieżącej kontroli procesu wykonania. tryb interaktywny, bezpośredni (ang. on-line, interactive), konwersacyjne współdziałanie użytkownika z systemem komputerowym z wykorzystaniem terminala komputera. + szybka reakcja systemu, możliwość kontroli przebiegu procesu wykonania, mniejsze wykorzystanie zasobów systemu komputerowego. tryb czasu rzeczywistego, system, którego użytkownikiem jest proces technologiczny narzucający pewne wymagania czasowe. Dwa podejścia: system jest zobowiązany do reagowania na zdarzenia zewnętrzne w ustalonym nieprzekraczalnym okresie. system bada okresowo stan procesu technologicznego [.9] Historia systemów operacyjnych Charles Babbage (792-87) - projekt pierwszego komputera mechanicznego, Ada Lovelace pierwszym zatrudnionym programistą. Generacje systemów operacyjnych:. Pierwsza generacja (945-55) - lampy i przekaźniki. 2. Druga generacja (955-65) - tranzystory i systemy wsadowe. 3. Trzecia generacja (965-8) - układy zintegrowane i wieloprogramowanie. 4. Czwarta generacja (98-..) - komputery osobiste. [.] Pierwsza generacja (945-55) (I) ENIAC - Electronic Numerical Integrator and Computer (elektroniczne urządzenie numeryczne całkujące i liczące) - zbudowany na Uniwersytecie Pensylwania przez J. Eckerta. i J. Mauchly. zbudowany w latach , wykorzystywany do 955, 3 ton, 4 m2, 8 tys. lamp próżniowych, 4 kw, 5 operacji dodawania na sekundę, 2 rejestrów na dziesięciocyfrowe liczby dziesiętne, główna wada: programowanie przez ustawianie przełączników i wtykanie i wyjmowanie kabli. 4

7 ROZDZIAŁ. WPROWADZENIE Pierwszą generację cechował brak oprogramowania. [.] Pierwsza generacja (945-55) (II) W 944 roku John von Neuman sformułował następujące założenia:. Współczesny komputer powinien posiadać: pamięć złożoną z elementów przyjmujących stany lub, arytmometr, który wykonuje działania arytmetyczne, logiczne i inne, możliwość wprowadzania danych, wyprowadzania danych oraz sterowania, 2. Działanie komputera związane jest z realizacją programu i obróbką danych zakodowanych w pamięci. Program może zawierać rozkazy warunkowe, które umożliwiają rozgałęzienia i skoki, może się także modyfikować podczas wykonywania. [.2] Druga generacja (955-65) tranzystory i systemy wsadowe, epoka systemów typu mainframe, przetwarzanie wsadowe (ang. batch system) metodą zwiększenia poziomu utlizacji czasu procesora, specjalizacja systemów, reprezentanci: IBM4 do wprowadzania i wyprowadzania danych, IBM794 do obliczeń numerycznych. [.3] Wczesne systemy wsadowe Card reader Tape drive Input tape System tape Output tape Printer (a) (b) (c) (d) (e) (f) FMS (ang. the Fortran Monitor System) 5

8 ROZDZIAŁ. WPROWADZENIE [.4] Struktura typowego zlecenia w FMS $END Data for program $LOAD $RUN Fortran program $FORTRAN $JOB,,6682, MARVIN TANENBAUM [.5] Trzecia generacja (965-98) wykorzystanie układów scalonych (ang. ICs) do budowy IBM 36, wieloprogramowanie (ang. multiprogramming), maszyny klasy IBM 4 wyeliminowane przez spooling Simultaneous Peripheral Operation On Line, Job 3 Job 2 Job Operating system Memory partitions dzielenie czasu (ang. timesharing) jako wariant wieloprogramowania, w którym użytkownicy korzystali równocześnie z rożnych terminali, CTSS (ang. Compatible Time Sharing System) pierwszym poważnym systemem z podziałem czasu (M.I.T., 962), przetwarzanie wsadowe jak i interaktywne. [.6] Systemy trzeciej generacji MULTICS (ang. MULTiplexed Information and Computing Service) - MIT, Bell Labs, General Electric - projekt pojedynczego systemu z mocą obsługującą cały region Bostonu ( DEC PDP PDP- (96 r.) rozpoczął erę minikomputerów - prawie tak szybki jak IBM 794, ale za 5% ceny; sukces systemów PDP-, Ken Thompson z Bell Labs na komputerze PDP-7 stworzył okrojoną jednoużytkownikową wersję systemu Multics, która wyewoluowała w system Unix, 6

9 ROZDZIAŁ. WPROWADZENIE dwie główne gałęzie systemu Unix: System V (AT&T) oraz BSD (Uniwersytet Kalifornijski w Berkeley), POSIX (ang. Portable Operating System Interface) - definiowany przez IEEE standard zgodności z systemem Unix (teraz: z systemem otwartym). [.7] Czwarta generacja (98-dziś) (I) komputery osobiste (mikrokomputery) podobne do minikomputerów budową ale rożne ceną, 974, Intel wprowadza 88, pierwszy ośmiobitowy procesor ogólnego przeznaczenia, Gary Kildall pisze CP/M (ang. Control Program for Microcomputers) 977, CP/M przepisane przez Digital Research na inne mikroprocesory, 5 lat dominacji CP/M, początek lat osiemdziesiątych - IBM zaprojektował IBM PC i skontaktował się z Billem Gatesem w celu licencjonowania interpretera języka BASIC, najgorsza decyzja Digital Research - brak zaangażowania w rozmowach z IBM, B. Gates kupuje od Seattle Computer Products system operacyjny DOS i oferuje tandem DOS/BASIC dla IBM, [.8] Czwarta generacja (98-dziś) (II) MS DOS (ang. MicroSoft Disk Operating System) nową wersją systemu DOS przepisaną przez zatrudnionego twórcę oryginalnego systemu DOS, GUI (ang. Graphical User Interface) wymyślone przez Douga Engelbarta w Stanford Research Institute w latach sześćdziesiątych; zaadoptowane przez naukowców z Xerox PARC, Steve Jobs, współtwórca Apple - próba zbudowania Apple z GUI, systemy Lisa i Apple Macintosh, systemy Windows 3., Windows 95, Windows 98, Windows ME, systemy Windows NT zaprojektowane w dużym stopniu przez projektantów systemu VAX VMS, czas sieci i sieciowych systemów operacyjnych, klon systemu Unix, Minix, napisany przez A. Tanenbauma, klon systemu Minix, Linux, stworzony przez L. Torvaldsa. [.9] Różne typy systemów operacyjnych Wyróżnić można następujące typy systemów operacyjnych: 7

10 ROZDZIAŁ. WPROWADZENIE dla komputerów klasy mainframe, serwerowe, wieloprocesorowe, dla komputerów osobistych, systemy czasu rzeczywistego, z ograniczeniami twardymi bądź miękkimi (VxWorks, QNX), dla systemów wbudowanych (PalmOS, Windows CE), [.2] Powtórka z achitektury systemów komputerowych (I) procesor: licznik rozkazów, wskaźnik stosu, słowo stanu procesora, pamięć: RAM, ROM, EEPROM, flash RAM, adresy fizyczne i wirtualne, MMU, różne typy szyn/ magistrali: IDE (ang. Integrated Drive Electronics), ISA (ang. Industry Standard Architecture), PCI (ang. Peripheral Component Interconnect), USB (ang. Universal Serial Bus), SCSI (ang. Small Computer System Interface), IEEE 394 (FireWire) [.2] Powtórka z arch. systemów komputerowych (II) Cache bus Local bus Memory bus Level 2 cache CPU PCI bridge Main memory PCI bus SCSI USB ISA bridge IDE disk Graphics adaptor Available PCI slot Mouse ISA bus Keyboard Monitor Modem Sound card Printer Available ISA slot Struktura systemu komputerowego klasy Pentium. 8

11 ROZDZIAŁ. WPROWADZENIE [.22] Przerwanie w systemie komputerowym Disk drive Current instruction CPU 3 Interrupt controller 4 2 Disk controller Next instruction. Interrupt 3. Return 2. Dispatch to handler Interrupt handler (a) (b) Przebieg wystąpienia i obsługi przerwania w systemie komputerowym. [.23] Koncepcje związane z systemem operacyjnym proces, przestrzeń adresowa procesu, tablica procesów, obraz procesu, procesy potomne, komunikacja międzyprocesowa, sygnały, identyfikatory: procesu, grupy, właściciela procesu, blokady, zarządzanie pamięcią, wejście/ wyjście, pliki, katalogi, ścieżki dostępu, katalog główny, katalog bieżący, deskryptor pliku, system plików, pliki specjalne, urządzenia blokowe i znakowe, potoki, bezpieczeństwo, bity rwx, listy kontroli dostępu, interpreter poleceń. [.24] Blokady w systemie operacyjnym (a) (b) a. stan potencjalnej blokady, b. stan rzeczywistej blokady. 9

12 ROZDZIAŁ. WPROWADZENIE [.25] Montowanie zewnętrznego systemu plików Root Floppy a b x y a b c d c d x y (a) (b) a. przed montowaniem - pliki z dyskietki niedostępne, b. po montowaniu - pliki z dyskietki dostępne.

13 Rozdział 2 Programowanie w języku powłoki sh [2.] Programowanie w języku powłoki sh Powłoka, interpreter poleceń angshell jest programem uruchamianym standardowo po otwarciu sesji użytkownika przez proces login. Powłoka jest aktywna aż do wystąpienia znaku <EOT>, który powoduje jej zatrzymanie i zgłoszenie tego faktu do jądra systemu. Każdy użytkownik otrzymuje własny i odrębny egzemplarz sh. Program sh wypisuje monit $ na ekranie, dając znać o swojej gotowości do przyjęcia polecenia (komendy). Interpreter poleceń funkcjonuje według następującego schematu:. wypisuje monit, 2. czeka na wprowadzenie tekstu z klawiatury, 3. analizuje wiersz polecenia i znajduje program, 4. zleca jądru wykonanie programu, 5. przyjmuje odpowiedź od jądra, ponownie wypisuje monit. [2.2] Inicjalizacja powłoki Inicjalizacja powłoki:. przypisywane są wartości zmiennym powłoki, 2. wykonywane są skrypty systemowe definiujące dalsze elementy otoczenia powłoki.

14 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH shell skrypty systemowe. sh, ksh.profile 2. csh.login,.cshrc Rozbudowana lista plików inicjacyjnych dla interpretera zsh:. /etc/zprofile 2. /etc/zlogin 3. /etc/zshrc 4. /etc/zshenv... odpowiedniki kropkowe powyższych plików w katalogu domowym. [2.3] Użytkownicy w systemie Unix Użytkownicy w systemie Unix superużytkownik (ang. superuser, root), pozostali użytkownicy. Użytkownik w systemie, plik /etc/passwd: nazwa użytkownika, hasło, uid (ang. user identification), gid (ang. group identification), informacja o użytkowniku, katalog domowy użytkownika, nazwa powłoki inicjowanej po otwarciu sesji. tnowak:hasło zakodowane:2:5::/usr/tnowak:/bin/sh [2.4] Grupy użytkowników Grupa w systemie, plik /etc/group: nazwa grupy, hasło grupy, numer grupy, lista użytkowników należących do grupy. 2

15 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH wheel:::tnowak,tkruk Inne zagadnienia: prawa dostępu do pliku (-rwxr-xr-x, 755, komenda chmod), bity SUID, SGID (-r-s x x, np. komenda passwd), plik /etc/shadow. [2.5] Zmienne powłoki Wśród zmiennych powłoki wyróżniamy: zmienne predefiniowane z wartością jawnie przypisywaną, parametry powłoki, w których gromadzone są informacje dotyczące nazwy i argumentów aktualnie wywoływanej komendy. Przykładowe zmienne powłoki sh: HOME katalog standardowy dla komendy cd, IFS (ang. Internal Field Separators) znaki separatorów rozdzielających elementy składniowe występujące w linii komendy, MAIL skrzynka pocztowa z ustawionym powiadamianiem, PATH lista katalogów, w których poszukiwane będą pliki wywoływanych komend, PS (ang. Prompt String ) pierwszy znak zachęty powłoki, standardowo $, PS2 drugi znak zachęty powłoki, standardowo >, SHELL domyślny program do wywoływania jako podpowłoka, TERM rodzaj terminala, identyfikuje zestaw sekwencji sterujących właściwych dla danego terminal (np. ansi, vt, xterm), [2.6] Polecenia Postać polecenia $ nazwa_polecenia arg... arg9 $ echo $PATH Polecenia wbudowane $ PATH=$PATH:/usr/local/bin $ export PATH 3

16 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH bezparametrowe set wyświetla wartości wszystkich zmiennych środowiska bezparametrowe export wyświetla wartości wszystkich eksportowanych zmiennych środowiska [2.7] Parametry powłoki Parametry powłoki $ nazwa wywołanej komendy (cmd) $ pierwszy argument (parametr) wywołania $2 drugi argument (parametr) wywołania $9 dziewiąty argument (parametr) wywołania $* argumenty jako jeden łańcuch znaków "$*" = "$ $2.." $@ argumenty jako osbne łańcuchy znaków "$@" = "$" "$2".. $# liczba argumentów przekazanych przy wywołaniu lub przez set, $? stan końcowy (ang. exit status) ostatnio wykonywanej komendy, $$ numer procesu aktualnie wykonywanej powłoki, $! numer procesu ostatnio wykonywanego procesu w tle. $-9 także: opcje przypisane powłoce przy wywołaniu lub przez set, [2.8] Metaznaki Podczas opracowywania nazw plików oraz przy grupowaniu komend w większe całości stosuje się znaki o specjalnym znaczeniu dla interpretera nazywane metaznakami. * dowolny łańcuch znaków nie zawierający "/",? jeden dowolny znak, [ ] każdy pojedyńczy znak ze zbioru zamkniętego w te nawiasy, [ ] jak [ ], w zakresie od pierwszego do ostatniego podanego znaku, [!..-...] w zakresie wszystkich oprócz od pierwszego do ostatniego znaku, # komentarz, \ (back slash) przywraca poprzedzonemu metaznakowi jego normalne literalne znaczenie, $ wartość zmiennej, ; koniec komendy, łańcuch w znakach akcentu jest wykonywany jak komenda, klamrowanie apostrofami jednostki tekstu powoduje uniknięcie jakichkolwiek podstawień (substytucji), " " klamrowanie cudzysłowem jednostki tekstu powoduje uniknięcie wszelkich podstawień za wyjątkiem: $ \ 4

17 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH [2.9] Interpretacja komend Interpretacja komend przez powłokę sh odbywa się w następujący sposób:. wprowadzenie tekstu polecenia (ciągu znaków), 2. podzielenie ciągu znaków na ciąg słów w oparciu o zawarte w IFS seperatory, 3. substytucja : zastępowanie zmiennych powłoki tzn. zastępowanie metawyrażeń o postaci ${słowo} ciągami znaków zawartymi w zmiennych wyspecyfikowanych przez słowo np. $ b=/usr/user $ ls -l prog.* > ${b}3 4. substytucja 2: rozszerzanie parametrów tzn. rozszerzenia słów zawierających metaznaki *? [ ] na odpowiednie nazwy plików w katalogu aktualnym, 5. substytucja 3: interpretacja łańcucha ujętego w znaki akcentu jako komendy i jej wykonanie. [2.] Grupowanie przyjęto konwencję, że argumenty które nie są nazwami plików należy poprzedzać znakiem minus. komendy mogą być grupowane w nawiasy: nawiasy okrągłe ( ciąg-komend ) służą do grupowania komend, które będą wykonywane jako samodzielny proces. Proces ten może być również wykonywany w tle (&). nawiasy klamrowe { ciąg-komend; } służą do grupowania komend, które będą normalnie wykonywane w ramach bieżącego procesu. końcem komendy są następujące znaki: <NL> ; & [2.] Przeadresowywanie wejścia/ wyjścia Po otwarciu sesji do otoczenia użytkownika należą następujące pliki: wejście standardowe (stdin) - strumień, wyjście standardowe (stdout) - strumień, standardowe wyjście błędów (stderr) - strumień 2. 5

18 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH Znakami przeadresowywania są: > plik przekieruj stdout do pliku >> plik dopisz stdout do pliku < plik przekieruj stdin z pliku << EOT czytanie tekstu z stdin w trybie bezpośrednim, aż do wystąpienia słowa EOT n > plik przekierowanie wyjścia strumienia o deskryptorze n do pliku, n >> plik dopisanie przekierowania wyjścia strumienia do pliku, n>&m przekierowanie wyjścia strumienia n do wyjścia strumienia m, n<&m przekierowanie wejścia strumienia n do wejścia strumienia m. [2.2] Procedury powłoki (skrypty) Komendy powłoki zgrupowane w zwykłym pliku tekstowym mogą być wykonane poprzez: $ sh [opcje] plik_z_komendami [arg...] Po nadaniu plikowi zawierającemu komendy, atrybutu wykonywalności, komendą chmod, np.: $ chmod +x plik_z_cmd można go wykonać jak komendę, bez podawania sh przed jego nazwą. $ plik_z_komendami arg... [2.3] Struktury sterujące do sterowania przebiegiem procedury powłoki służą instrukcje takie, jak: if, for, while, until, case możliwe jest skrócenie zapisu if, przy użyciu znaków: And-if && (gdy rezultat równy zero) Or-if (gdy rezultat różny od zera) $ cp x y && vi y $ cp x y cp z y Każda komenda umieszcza w $? status z jakim zakończyło się jej wykonanie. Status oznacza pomyślne zakończenie działania procesu. Status niezerowy oznacza wystąpienie błędu podczas wykonywania się komendy. [2.4] Instrukcja if ogólny zapis jest następujący: 6

19 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH przykład if ciąg_komend_ then ciąg_komend_2 {else ciąg_komend_3} fi if cc -c p.c then ld p.o else echo "compilation error" >&2 fi [2.5] Instrukcja case ogólny zapis jest następujący: przykład case słowo in wzór_) lista_komend_;; wzór_2) lista_komend_2;; *) lista_komend_domyślnych;; esac case $# in ) echo usage: man name >&2; exit 2;; [2.6] Instrukcje iteracyjne (pętle) W powłoce sh instrukcje iteracyjne (pętle) występują w trzech odmianach: instrukcja for, której treść jest wykonywana jednorazowo dla każdego słowa w liście słów, instrukcja while, której treść jest wykonywana tak długo, jak długo jest spełniony warunek w while, instrukcja until, której treść jest wykonywana tak długo, aż nastąpi spełnienie warunku w until. 7

20 ROZDZIAŁ 2. PROGRAMOWANIE W JĘZYKU POWŁOKI SH można stosować instrukcje continue i break #!/bin/sh for i in /tmp /usr/tmp do rm -rf $i/* done [2.7] Przykłady różne $ cat file.dat while read x y z do echo $x $y $z done #!/bin/sh i= while [ $i -le 5 ]; do echo $i i= expr $i + done $ who -r. ru-level 2 Aug 2 6:58 2 S $ set who -r $ echo $6 6:58 [2.8] Przykład duży #!/usr/bin/zsh PATH=/usr/bin:/usr/local/bin:/bin WAIT_TIME=5. /export/home/oracle/.zshenv #sprawdz czy jest sens go sprawdzac.. PID= ps -ef grep LISTENER grep -v grep awk -e {print $2 } if test -z "$PID" then exit fi # sprawdz jak dziala lsnrctl status >/dev/null 2>& & sleep $WAIT_TIME kill $! 2>/dev/null res="$?" if test "$res"!= "" then kill $PID fi kill -9 $PID logger -p user.err Oracle LISTENER ERROR (stunned) - restarted lsnrctl start 8

21 Rozdział 3 Procesy i wątki [3.] Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie operacyjnym. Wymagania odnośnie systemu operacyjnego odnośnie zarządzania procesami: umożliwienie przeplatania się wykonywania procesów, akceptowalnie krótki czas odpowiedzi systemu, zarządzanie przydziałem zasobów poszczególnym procesom, udostępnianie mechanizmów do komunikacji międzyprocesowej, udostępnianie mechanizmów do tworzenia procesów. [3.2] Wieloprogramowanie One program counter A B C Process switch A Four program counters B C D Process D C B A D Time (a) (b) (c) 9

22 ROZDZIAŁ 3. PROCESY I WĄTKI należy unikać programowania procesów uwarunkowanych czasowo, zależność między programem a procesem, pojęcia procesów współbieżnych, równoległych i rozproszonych, [3.3] Tworzenie i kończenie procesów Utworzenie procesu może być rezultatem: inicjalizacji systemu, wywołania przez już uruchomiony proces funkcji systemowej do tworzenia procesu, zlecenia użytkownika utworzenia nowego procesu, uruchomienia zadania wsadowego. Zakończenie działania procesu może być rezultatem: zakończenia algorytmu procesu, celowego zakończenia w wyniku wystąpienia błędu, wykonania niedozwolonej operacji (zakończenie wymuszone), otrzymania sygnału od innego procesu (zakończenie wymuszone). [3.4] Stany procesów Blocked Running Ready. Process blocks for input 2. Scheduler picks another process 3. Scheduler picks this process 4. Input becomes available Podstawowe stany procesów: uruchomiony - (ang. running), w danej chwili wykonuje się na procesorze, gotowy - (ang. ready), gotowy do wykonania, ale wstrzymany w oczekiwaniu na przydział czasu procesora, wstrzymany - (ang. blocked), nie może kontynuować pracy do momentu wystąpienia pewnego zewnętrznego zdarzenia. 2

23 ROZDZIAŁ 3. PROCESY I WĄTKI [3.5] Stany procesów w systemie Unix uruchomiony w trybie użytkownika - (ang. user running), uruchomiony w trybie jądra - (ang. kernel running), gotowy, w pamięci - (ang. ready to run, in memory), wstrzymany, w pamięci - (ang. asleep in memory), gotowy wymieciony - (ang. ready to run, swapped), wstrzymany, wymieciony - (ang. sleeping, swapped), wywłaszczony - (ang. preempted), utworzony - (ang. created), zombie - (ang. zombie). [3.6] Graf przejść stanów w systemie Unix [3.7] Planista Processes n 2 n Scheduler 2

24 ROZDZIAŁ 3. PROCESY I WĄTKI Przydziałem procesora poszczególnym procesom zajmuje się część jądra systemu operacyjnego określana mianem planisty (ang. scheduler). Implementacja procesu: system posiada strukturę danych określaną mianem tablicy procesów, element tablicy procesów nazywany jest deskryptorem procesu albo blokiem kontrolnym procesu (ang. PCB, process control block) [3.8] Typowe pola elementu tablicy procesów Zarządzanie procesem Rejestry Licznik rozkazów (PC) Słowo stanu procesora (PSW) Wskaźnik stosu Stan procesu Priorytet Parametry szeregowania ID procesu Proces rodzic Grupa procesu Sygnały Czas startu procesu Użyty czas CPU Czas następnego alarmu Zarządzanie pamięcią Wskaźnik do segmentu kodu Wskaźnik do segmentu danych Wskaźnik do segmentu stosu Zarządzanie plikami Katalog root Katalog bieżący Deskryptory plików ID użytkownika ID grupy [3.9] Obsługa przerwań Obsługa przerwań przez system operacyjny: odbieranie procesora na rzecz planisty z wykorzystaniem wsparcia sprzętowego (np. przerwania zegarowego), z każdym urządzeniem I/O skojarzona jest lokalizacja w pamięci z informacją, skąd ma nastąpić kontynuacja wykonywania podprogramu w przypadku wystąpienia przerwania, tzw. wektor przerwania (ang. interrupt vector), wektor przerwania zawiera adres procedury dostarczonej przez system operacyjny (ang. interrupt handler), planista odgrywa rolę pośrednika, uzyskuje sterowanie po każdym wystąpieniu przerwania zegarowego, proces nie może przekazać sterowania innemu procesowi bez pośrednictwa planisty. 22

25 ROZDZIAŁ 3. PROCESY I WĄTKI [3.] Obsługa przerwania - szkielet. Sprzętowo zapamiętane na stosie licznik rozkazów, itp. 2. Sprzętowo ładowana nowa wartość licznika rozkazów z wektora przerwań 3. Procedura w języku asemblera zapamiętuje wartości rejestrów 4. Procedura w języku asemblera ustala nowy stos 5. Obsługa przerwania w języku C (często odczyt i buforowanie wejścia) 6. Planista wybiera następny proces do wznowienia 7. Procedura w języku asemblera przygotowuje i wznawia nowy bieżący proces [3.] Wątki wykonania Gdy potrzeba współbieżnych wykonań sterowania i rozwiązanie jako grupa procesów, to przy rozłącznych chronionych przestrzeniach adresowych: z punktu widzenia ochrony: zaleta, ale: chronimy się przed samym sobą, z punktu widzenia komunikacji: wada, z punktu widzenia łatwości współużytkowania zasobów: wada, z punktu widzenia wydajności: wada, chyba że równolegle. Więc może dwa sterowania spróbować zawrzeć tak jakby w jednym procesie, wtedy: z punktu widzenia ochrony: wada, ale jesteśmy autorami kodu, z punktu widzenia komunikacji: zaleta, z punktu widzenia łatwości współużytkowania zasobów: zaleta. [3.2] Atrybuty procesów i wątków Zarządzanie procesem Przestrzeń adresowa Wartości zmiennych globalnych Otwarte pliki Procesy potomne Alarmy Sygnały i obsługa sygnałów Informacje rozliczeniowe Zarządzanie pamięcią Licznik rozkazów Wartości rejestrów Stos Stan 23

26 ROZDZIAŁ 3. PROCESY I WĄTKI Wątki tego samego procesu mogą wymieniać informacje przez zwienne globalne procesu. co zrobić z wątkami w przypadku zlecenia stworzenia podprocesu, na jakim poziomie obsługiwać sygnały. [3.3] Stos wątków Thread 2 Thread Thread 3 Process Thread 's stack Thread 3's stack Kernel [3.4] Serwer wielowątkowy Web server process Dispatcher thread Worker thread User space Web page cache Kernel Kernel space Network connection [3.5] Zarys algorytmów serwera wielowątkowego 24

27 ROZDZIAŁ 3. PROCESY I WĄTKI while (TRUE) { while (TRUE) { get_ next_ request(&buf); wait_ for_ work(&buf) handoff_ work(&buf); look_ for_ page_ in_ cache(&buf, &page); } if (page_not_in_cache(&page)) read_page_from_disk(&buf, &page); return_page(&page); } (a) (b) [3.6] Metody konstrukcji serwerów Metody organizacji serwerów usług: serwery wielowątkowe - współbieżność, blokujące wywołania systemowe, procesy jednowątkowe - brak współbieżności, blokujące wywołania systemowe, automaty skończone - współbieżność, nieblokujące wywołania systemowe, przerwania. [3.7] Wątki poziomu jądra a wątki poziomu użytkownika Process Thread Process Thread User space Kernel space Kernel Kernel Run-time system Thread table Process table Process table Thread table [3.8] Wątki - rozwiązania hybrydowe 25

28 ROZDZIAŁ 3. PROCESY I WĄTKI Multiple user threads on a kernel thread User space Kernel Kernel thread Kernel space [3.9] Architektura wielowątkowa w systemie Solaris Solaris wykorzystuje cztery rozłączne koncepcje: Procesy - standardowe procesy systemu Unix, Wątki poziomu użytkownika - zaimplementowane bibliotecznie, nierozróżnialne z punktu widzenia jądra, stanowią interfejs do współbieżności, Procesy lekkie (ang. Lightweight processes, LWP), LWP stanowi formę odwzorowania między wątkami poziomu użytkownika a wątkami jądra. każdy LWP obsługuje jeden bądź więcej wątków poziomu użytkownika odwzorowując w jeden wątek jądra, LWP rozróżniane i szeregowane przez jądro, LWP mogą być uruchomione równolegle w architekturze wieloprocesorowej, Wątki jądra podstawowe elementy szeregowane i rozmieszczane na procesorach. [3.2] Wątki w systemie Solaris - przykład 26

29 ROZDZIAŁ 3. PROCESY I WĄTKI [3.2] Migracja do kodu wielowątkowego Thread Thread 2 Time Access (errno set) Open (errno overwritten) Errno inspected [3.22] Prywatne zmienne globalne 27

30 ROZDZIAŁ 3. PROCESY I WĄTKI Thread 's code Thread 2's code Thread 's stack Thread 2's stack Thread 's globals Thread 2's globals [3.23] Procesy obciążające procesor i we/ wy (a) Long CPU burst Short CPU burst Waiting for I/O (b) Time [3.24] Szeregowanie procesów Wyróżniamy następujące techniki szeregowania: szeregowanie bez wywłaszczania (ang. nonpreemptive scheduling), szeregowanie z wywłaszczaniem (ang. preemptive scheduling). Różne wymagania dla różnych środowisk: przetwarzania wsadowego, systemów interaktywnych, systemów czasu rzeczywistego. [3.25] Cechy dobrego szeregowania Wszystkie systemy sprawiedliwość - każdemu równą część czasu CPU, zgodność z polityką - praca wedle założeń, 28

31 ROZDZIAŁ 3. PROCESY I WĄTKI wyrównywanie - zbliżona zajętość wszystkich części systemu. Systemy wsadowe przepustowość - maksymalizacja liczby zadań w czasie, czas w systemie - min. czasu między uruchomieniem a zakończeniem, wykorzystanie procesora - minimalizacja przerw w pracy procesora. Systemy interaktywne czas odpowiedzi - możliwie szybka odpowiedź na żądanie, proporcjonalność - spełnianie oczekiwań użytkownika. Systemy czasu rzeczywistego spełnianie wymagań - spełnianie ograniczeń czasowych, przewidywalność - np. unikanie spadku jakości w przekazie multimediów. [3.26] Najszybciej najkrótsza praca A B C D B C D A (a) (b) Szeregowanie w systemach wsadowych FCFS, kolejka FIFO, (ang. First-Come First-Served), SJF, najszybciej najkrótsza praca (ang. Shortest Job First), SRTN, (ang. Shortest Remaining Time Next), szeregowanie trzypoziomowe (ang. Three-Level Scheduling). [3.27] Szeregowanie trzypoziomowe CPU CPU scheduler Arriving job Input queue Main Memory Admission scheduler Memory scheduler Disk 29

32 ROZDZIAŁ 3. PROCESY I WĄTKI [3.28] Szeregowanie Round-Robin Current process Next process Current process B F D G A (a) F D G A B (b) Szeregowanie w systemach interaktywnych algorytm Round-Robin, szeregowanie priorytetowe, najkrótszy proces jako następny (estymacja). [3.29] Szeregowanie z klasami priorytetowymi Queue headers Runable processes Priority 4 (Highest priority) Priority 3 Priority 2 Priority (Lowest priority) [3.3] Szeregowanie w systemach czasu rzeczywistego system z ograniczeniami twardymi i miękkimi, specyfika obsługi zdarzeń okresowych i nieokresowych, m i= C i P i System rzeczywisty spełniający powyższą nierówność jest szeregowalny (ang. schedulable). C i czas wykonania zadania okresowego, P i okres wykonywania zadania okresowego. 3

33 ROZDZIAŁ 3. PROCESY I WĄTKI [3.3] Szeregowanie wątków Order in which threads run Process A Process B Process A Process B 2. Runtime system picks a thread Kernel picks a process. Kernel picks a thread Possible: A, A2, A3, A, A2, A3 Not possible: A, B, A2, B2, A3, B3 (a) Possible: A, A2, A3, A, A2, A3 Also possible: A, B, A2, B2, A3, B3 (b) a. dla wątków poziomu użytkownika, b. dla wątków poziomu jądra. 3

34 Rozdział 4 Wzajemne wykluczanie i synchronizacja [4.] Wyścigi w systemie operacyjnym IPC - komunikacja między procesami (ang. InterProcess Communication) W SO wykonujące się procesy często dzielą obszary wspólnej pamięci, pliki lub inne zasoby. Należy unikać tzw. wyścigów. Def. 3 Warunkami wyścigu (ang. race conditions) nazywamy sytuację, w której dwa lub więcej procesów wykonuje operację na zasobach dzielonych, a ostateczny wynik tej operacji jest zależny od momentu jej realizacji. [4.2] Przykład wystąpienia wyścigu Przykład void echo() { chin = getchar(); chout = chin; putchar( chout ); } PROCES PROCES 2 2 chin = getchar(); 3 4 chout = chin; 5 putchar( chout ); 6 7 chin = getchar(); chout = chin; putchar( chout ); 32

35 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA [4.3] Sekcja krytyczna Aby zapobiec warunkom wyścigu należy stworzyć mechanizm zabraniający więcej niż jednemu procesowi dostępu do zasobów dzielonych w tym samym czasie. Należy wprowadzić mechanizm wzajemnego wykluczania WW (ang. mutual exclusion). Def. 4 Sekcja krytyczna - fragment programu, w którym występują instrukcje dostępu do zasobów dzielonych. Instrukcje tworzące sekcje krytyczne muszą być poprzedzone i zakończone operacjami realizującymi wzajemne wykluczanie. Wybór właściwych operacji realizujących WW stanowi istotę każdego systemu operacyjnego. [4.4] Warunki konieczne implementacji SK Dla prawidłowej implementacji sekcji krytycznych muszą być spełnione następujące 3 warunki, przy czym nie czynimy żadnych założeń dotyczących szybkości działania procesów, czy też liczby procesorów:. wewnątrz SK może przebywać tylko jeden proces, 2. jakikolwiek proces znajdujący się poza SK, nie może zablokować innego procesu pragnącego wejść do SK, 3. każdy proces oczekujący na wejście do SK powinień otrzymać prawo dostępu w rozsądnym czasie. [4.5] Mechanizmy realizujące wzajemne wykluczanie Dwa podejścia:. Mechanizmy z aktywnym oczekiwaniem na wejście do SK, (a) blokowanie przerwań, (b) zmienne blokujące (niepoprawne), (c) ścisłe następstwo (niepoprawne), (d) algorytm Petersona, (e) instrukcja TSL. 2. Mechanizmy z zawieszaniem procesu oczekującego na wejście do SK. 33

36 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA (a) sleep i wakeup (niepoprawne), (b) semafory, (c) monitory, (d) komunikaty. [4.6] Mechanizmy z aktywnym oczekiwaniem. Blokowanie przerwań (ang. disabling interrupts) każdy proces wchodząc do SK blokuje przerwania, a wychodząc odblokowuje, zaleta: proces znajdujący się w SK może uaktualnić zawartość zasobów dzielonych bez obawy, że inny proces będzie interweniował. wada: jeśli proces na wyjściu z SK nie odblokuje przerwań, to nastąpi upadek systemu; ponadto, w przypadku systemów wieloprocerowych technika nieskuteczna, technika blokowania przerwań może być stosowana w jądrze SO przy uaktualnianiu niektórych systemowych struktur danych, lecz nie może być wykorzystywana do realizacji wzajemnego wykluczania w przestrzeni użytkownika. [4.7] 2. Zmienne blokujące (ang. lock variables) Rozwiązanie programowe. Niech będzie dana zmienna dzielona o nazwie lock. Niech początkowo lock ma wartość. Kiedy proces P chce wejść do SK, to sprawdza wartość lock. jeżeli lock =, to ustawia lock na i wchodzi do SK; jeżeli nie, to proces czeka aż lock stanie się równe. Tak więc: lock = oznacza, że nie ma procesu w SK, lock = oznacza, że jest w SK. 34

37 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA Rozwiązanie niepoprawne, występuje problem wyścigu. [4.8] 3. Ścisłe następstwo (ang. strict alternation) PROCES while( TRUE ) 2 { 3 while( turn!= ) 4 /* wait */; 5 critical_section(); 6 turn = ; 7 noncritical_section(); 8 } PROCES while( TRUE ) { while( turn!= ) /* wait */; critical_section(); turn = ; noncritical_section(); } początkowo turn=, został naruszony warunek 2. P może zostać zablokowany przez P znajdujący się poza SK. Stan taki nazywamy stanem zagłodzenia. rozwiązanie wymaga ścisłego następstwa (przełączania), nie można wydrukować dwóch kolejnych plików przez ten sam proces, rozwiązanie niepoprawne, wyeliminowany problem wyścigu zastąpiony problemem zagłodzenia. [4.9] 4. Algorytm Petersona (I) Łącząc ideę ścisłego następstwa ze zmiennymi blokującymi T. Dekker pierwszy znalazł rozwiązanie (965) wzajemnego wykluczania. W 98 r. Peterson znalazł prostsze rozwiązanie tego problemu. Każdy proces przed wejściem do SK wywołuje enter_region z własnym numerem jako parametrem, zaś po wyjściu leave_region. [4.] Algorytm Petersona (II) #define FALSE #define TRUE #define N 2 int turn; int interested[n]; /* initially */ enter_region(int process) /* process nr or */ { int other; other = - process; interested[process] = TRUE; turn = process; while( (turn == process) && (interested[other] == TRUE) ); 35

38 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA } leave_region(int process) { interested[process]=false; } [4.] 5. Instrukcja TSL Wspomaganie sprzętowe, niektóre komputery są wyposażone w instrukcję TEST AND SET LOCK (TSL) instrukcja TSL wykonuje się niepodzielnie w następujący sposób: czyta zawartość słowa pamięci do rejestru, zapamiętuje wartość rejestru w pamięci, operacje czytania i pisania są niepodzielne, tzn. inny proces nie ma dostępu do miejsca pamięci, aż nie nastąpi zakończenie instrukcji TSL, W celu użycia TSL posłużymy się zmienną dzieloną o nazwie flag, przy pomocy której będziemy koordynować dostęp do zasobów dzielonych. kiedy flag =, to każdy proces może ją ustawić na stosując TSL, a następnie wejść do SK, wychodząc z SK ustawia wartość flag na stosując zwykłą instrukcje move. [4.2] Organizacja sekcji krytycznej z wykorzystaniem TSL enter_region: 2 tsl register, flag 3 cmp register, # 4 jnz enter_region 5 ret leave_region: mov flag, # ret Procesy ubiegające się o dostęp do SK muszą wywoływać procedury enter_region i leave_region we właściwym porządku. Wady rozwiązań opartych na koncepcji aktywnego oczekiwania strata czasu procesora, 36

39 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA możliwość blokady systemu przy wielopriorytetowym sposobie szeregowania procesów, tzw. zjawisko inwersji priorytetów. [4.3] Rozwiązania z zawieszaniem procesu oczekującego. Sleep and Wakeup Najprostszym rozwiązaniem jest utworzenie dwóch wywołań systemowych sleep() i wakeup(). wywołanie sleep() powoduje, że proces wywołujący zostaje zawieszony do momentu, gdy inny proces nie obudzi danego poprzez wywołanie wakeup(), funkcja wakeup wywoływana jest z jednym argumentem, numerem procesu, który ma być obudzony. [4.4] Przykład wykorzystania sleep()/ wakeup() Problem producent-konsument (problem ograniczonego bufora). Niech dwa procesy dzielą wspólny bufor o skończonym wymiarze. Proces o nazwie producent (Pr) będzie umieszczał informacje (inf) w kolejnych miejscach buforu. Proces o nazwie konsument (Ko) będzie pobierał informacje z tego buforu. Przyjmujemy założenia: jeżeli Pr napotka na bufor pełny, to ma być zawieszony, jeżeli Ko napotka na bufor pusty, to ma być zawieszony, Niech w zmiennej o nazwie count będzie zapamiętywana liczba miejsc zajętych w buforze. Ponadto niech maksymalna liczba miejsc będzie równa N. Producent: if( count == N ) { zaśnij } else { dodaj inf i count++ } Konsument: if( count == ) { zaśnij } else { pobierz inf i count } [4.5] Producent-Konsument z RC (z wyścigiem) #define N int count=; 37

40 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA void producer(void) { while (TRUE){ produce_item(); if (count == N) sleep(); enter_item(); count = count + ; if (count == ) wakeup(consumer); } } void consumer(void) { while (TRUE){ if (count == ) sleep(); remove_item(); count = count - ; if (count == N-) wakeup(producer); consume_item(); } } Wada: sygnał wakeup może nie zostać przechwycony i utracony, co prowadzi do blokady. [4.6] 2. Semafory: definicja 965 r. - E. W. Dijkstra proponuje zmienną typu całkowitego do zliczania sygnałów wakeup, zaproponowana zmienna nazwana semaforem, inicjowana nieujemną wartością całkowitą i zdefiniowana poprzez definicje niepodzielnych operacji P(s) i V(s): P(S): while S do ; S := S ; V(S): S := S + ; holenderskie P i V od proberen (testować) i verhogen (zwiększać), teraz dla semaforów wielowartościowych zazwyczaj down()/up(), wait()/signal(), a dla semaforów binarnych często lock()/unlock(). [4.7] Semafory: realizacja struct semaphore { int count; queue_t queue; } 38

41 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA void down( semaphore s ) { s.count--; if( s.count < ) { wstaw proces do kolejki s.queue; zablokuj proces; } } void up( semapahore s ) { s.count++; if( s.count <= ) { usuń jeden z procesów z s.queue i wstaw do kolejki gotowych; } } [4.8] Semafory: algorytm producent-konsument #define N semaphore mutex = ; semaphore empty = N; semaphore full = ; int count = ; void producer(void) { while (TRUE) { produce_item(); down( empty ); down( mutex ); enter_item(); up( mutex ); up( full ); } } void consumer(void) { while (TRUE) { down( full); down( mutex ); remove_item(); up( mutex ); up( empty ); consume_item(); } } [4.9] Mutex - semafor binarny stosowane, gdy nie trzeba zliczać wystąpień sygnałów a jedynie organizować wzajemne wykluczanie (ang. mutual exclusion). szybka i prosta implementacja np. dla pakietu wątków poziomu użytkownika 39

42 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA mutex_lock: TSL REGISTER, MUTEX CMP REGISTER, # JZE ok CALL thread_yield JMP mutex_lock ok: RET [4.2] 3. Monitory mutex_unlock: MOVE MUTEX, # RET W celu łatwiejszego pisania programów realizujących wzajemne wykluczanie Hoare (974) i Hansen (975) zaproponowali mechanizm synchronizacji wysokiego poziomu zwany monitorem. monitor stanowi zbiór procedur, zmiennych i struktur danych, które są zgrupowane w specjalnym module. W każdej chwili tylko jeden proces aktywny może przebywać w danym monitorze. monitory są konstrukcją języka wysokiego poziomu. Za właściwą implementację wzajemnego wykluczania jest odpowiedzialny kompilator. w przedstawionej koncepcji brak mechanizmu, który powodowałby zawieszenie procesu, [4.2] Monitory: zapis Zapis monitora w hipotetycznych językach. monitor Buffer var byte b[]; integer head, tail; procedure insert( int item ) begin... end; procedure remove( int item ) begin... end; end monitor; [4.22] Monitory: wstrzymywanie procesu monitor Buffer { char b[]; integer head, tail; public void insert( Item i ) {... } public Item remove( void ) {... } } Zaproponowano wprowadzenie zmiennych warunkowych z dwoma operacjami wait( zmienna ) oraz signal( zmienna ). 4

43 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA kiedy procedura monitora wykrywa sytuację, że nie może kontynuować obliczeń wykonuje operację wait na pewnej zmiennej warunkowej. Proces wykonujący procedurę jest zawieszany. inny proces może teraz wejść do sekcji krytycznej. Przy wyjściu wykonuje signal w celu obudzenia zawieszonego procesu na zmiennej warunkowej. Po wywołaniu signal: Hoare: proces obudzony kontynuuje działanie, a wywołujący jest zawieszany, Hansen: proces wywołujący musi natychmiast opuścić monitor. [4.23] Monitory: algorytm producent-konsument (I) monitor Buffer condition full, empty; integer count; procedure enter; begin if count = N then wait(full); enter_item; count := count + ; if count = then signal(empty); end; count := ; end monitor; procedure remove; begin if count = then wait(empty); remove_item; count := count - ; if count = N- then signal(full); end; [4.24] Monitory: algorytm producent-konsument (II) procedure producer; begin while true do begin produce_item; Buffer.enter; end end; Mechanizm monitorów, własności: procedure consumer; begin while true do begin Buffer.remove; consume_item; end end; 4

44 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA wait()/signal() zapobiega możliwości gubienia sygnałów występującej przy sleep()/wakeup(), niewiele języków wysokiego poziomu jest wyposażone w monitory (Euclid, Concurrent Pascal) część języków posiada mechanizmy niepełne (Java i synchronized), rozwiązanie nierealizowalne w środowisku rozproszonym ze względu na wymóg dostępności wspólnej pamięci. [4.25] 4. Komunikaty (ang. message passing) Oparte na dwóch wywołaniach systemowych: send( destination, &message ); receive( source, &message ); Sposoby adresowania wiadomości:. adresowanie bezpośrednie, każdy proces posiada unikatowy adres. Można stosować poniższy mechanizm spotkań: jeżeli send wywołane przed receive, to proces wysyłający zawieszany do momentu przesłania wiadomości po wywołaniu receive, jeżeli receive wywołane przed send, to proces odbierający zawieszany do momentu przesłania wiadomości po wywołaniu send. 2. adresowanie pośrednie poprzez skrzynkę pośredniczącą pełniącą funkcję bufora pośredniczącego. Argumentem wywołań send i receive jest adres skrzynki a nie adres konkretnego procesu. [4.26] Komunikaty: algorytm producent/konsument (I) Założenia wstępne: wiadomości są tego samego rozmiaru, wiadomości wysłane lecz nie odebrane są buforowane automatycznie przez system operacyjny, użyto N wiadomości, analogicznie do N miejsc dzielonego bufora, komunikaty są traktowane jako medium transportowe dla informacji, tzn. mogą być wypełnione bądź bez informacji, 42

45 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA algorytm rozpoczyna wysłanie przez konsumenta N pustych komunikatów do producenta, aby producent mógł wysłać nową informację do konsumenta musi mieć dostępny pusty komunikat odebrany od konsumenta - liczba komunikatów w obiegu między producentem a konsumentem jest stała i niezależna od szybkości produkcji czy konsumpcji informacji. [4.27] Komunikaty: algorytm producent/konsument (II) #define N void producer( void ) { int item; message m; void consumer( void ) { int item, i; message m; for( i = ; i < N; i++ ) send( producer, &m ); } while( TRUE ) { produce_item( &item ); receive( consumer, &m ); build_message( &m, &item ); send( consumer, &m ); } } while( TRUE ) { receive( consumer, &m ); extract_item( &m, &item ); send( consumer, &m ); } [4.28] Problem ucztujących filozofów (I) pięciu filozofów przy stole z rozstawionymi pięcioma talerzami i pięcioma widelcami pomiędzy talerzami, każdy filozof tylko je i myśli, do jedzenia potrzebuje talerza (z zawartością) i dwóch widelców, widelec zasobem dzielonym przez sąsiadujących filozofów, jak zorganizować synchronizację? [4.29] Problem ucztujących filozofów (II) 43

46 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA #define N 5 void philosopher( int i ) { while( TRUE ) { think() take_fork( i ); take_fork( ( i + ) % N ); eat(); put_fork( ( i + ) % N ); put_fork( i ); } } Rozwiązanie niepoprawne - możliwość blokady. [4.3] Problem ucztujących filozofów (III) #define N 5 #define THINKING #define HUNGRY #define EATING 2 #define LEFT ( i + N - ) % N #define RIGHT ( i + ) % N int state[n]; semaphore mutex = ; semaphore s[n]; void philosopher(int i) { while (TRUE) { think( ); take_forks(i); eat( ); put_forks(i); } } void take_forks(int i) { down(&mutex); state[i] = HUNGRY; test(i); up(&mutex); down(&s[i]); } void put_forks(i) { down(&mutex); state[i] = THINKING; test(left); test(right); up(&mutex); } void test(i) { if (state[i] == HUNGRY && \\ state[left]!= EATING && \\ state[right]!= EATING) { state[i] = EATING; up(&s[i]); } } [4.3] Problem czytelników i pisarzy 44

47 ROZDZIAŁ 4. WZAJEMNE WYKLUCZANIE I SYNCHRONIZACJA semaphore mutex = ; semaphore db = ; int rc = ; void writer( void ) { while( TRUE ) } { think_up_data( ); down( &db ); write_data_base( ); up( &db ); } } { } void reader(void) { while( TRUE ) down( &mutex ); rc = rc + ; if( rc == ) down( &db ); up( &mutex ); read_data_base( ); down( &mutex ); rc = rc - ; if( rc == ) up(&db); up(&mutex); use_data_read( ); [4.32] Problem śpiącego fryzjera #define CHAIRS 5 semaphore customers = ; semaphore barbers = ; semaphore mutex = ; int waiting = ; void barber( void ) { while( TRUE ) { down( &customers ); down( &mutex ); waiting = waiting - ; up( &barbers ); up( &mutex ); cut_hair(); } } /* ilu siedzi na krzesłach */ /* ilu śpi nie pracując */ void customer( void ) { down( &mutex ); if( waiting < CHAIRS ) { waiting = waiting + ; up( &customers ); up( &mutex ); down( &barbers ); get_haircut(); } else { up( &mutex ); } } 45

48 Rozdział 5 Zarządzanie pamięcią [5.] Zarządzanie pamięcią Czego programiści oczekują od pamięci systemu: by była duża, by była szybka, by była nieulotna. Hierarchia pamięci: mała szybka droga pamięć (np. cache), średnia, średnio szybka, umiarkowanie droga, pamięć (np. pamięć operacyjna), ogromna, wolna i tania pamięć (np. pamięć dyskowa/ taśmowa). Zarządzanie pamięcią (ang. Memory Management, MM) na poziomie systemu operacyjnego uwarunkowane architekturą systemu. [5.2] Organizacja zarządzania pamięcią Na organizację zarządzania mają wpływ: pole adresowe argumentów rozkazu, miejsce pola adresacji w słowie, sprzętowe możliwości przekształcania pola adresacji. 46

49 ROZDZIAŁ 5. ZARZĄDZANIE PAMIĘCIĄ W zależności od długości pola adresacji przestrzeń adresowa może pokrywać się z zakresem adresów pamięci operacyjnej, może być większa lub mniejsza. [5.3] Funkcje systemu operacyjnego Funkcje systemu operacyjnego w kontekście zarządzania pamięcią: zagospodarowanie przestrzeni adresowej poprzez wykorzystanie mechanizmów translacji adresów, ochrona zawartości pamięci, organizacja dostępu do obszarów dzielonych, efektywna organizacja pamięci operacyjnej. Wielkość pamięci operacyjnej przeznaczonej na kod systemu operacyjnego jest zazwyczaj stała, natomiast bardziej złożony jest przydział pamięci procesom użytkowym. [5.4] Metody przydziału pamięci Metody przydziału pamięci operacyjnej procesom użytkowym:. brak podziału, wolna przestrzeń adresowa w danje chwili przydzielana jednemu procesowi użytkowemu. Wieloprogramowanie można realizować przez wymiatanie (ang. swapping), 2. podział pamięci, wolna przestrzeń adresowa podzielona na części przydzielane pojedynczym procesom użytkowym, 3. wykorzystanie pamięci wirtualnej, istnieje jedna lub wiele wirtualnych przestrzeni adresowych przydzielanych procesom użytkowym, a mających w niewielkim stopniu pokrycie w pamięci operacyjnej. [5.5] Brak podziału Trzy metody prostej organizacji pamięci dla systemu operacyjnego i jednego procesu uzytkownika. 47

50 ROZDZIAŁ 5. ZARZĄDZANIE PAMIĘCIĄ User program Operating system in RAM xfff Operating system in ROM Device drivers in ROM User program User program Operating system in RAM (a) (b) (c) [5.6] Podział pamięci Cele podziału pamięci między procesy: lepsze wykorzystanie elementów sprzętowych systemu, głównie procesora i pamięci, umożliwienie szybkiego przełączania procesora z pracy z jednym procesem na pracę z innym procesem. Można wyróżnić następujące typy systemów z podziałem pamięci: systemy z podziałem statycznym. Podział statyczny dzieli pamięć na stałe partycje o różnej długości lub na bloki o stałej długości zwane ramami (ang. frame). systemy z podziałem dynamicznym. Realizacja z wykorzystaniem struktur opisujących wolne bloki pamięci o różnych długościach oraz mechanizm wymiatania. [5.7] Podział statyczny na stałe partycje 48

Systemy operacyjne Programowanie w języku powłoki sh

Systemy operacyjne Programowanie w języku powłoki sh Systemy operacyjne Programowanie w języku powłoki sh [2] Programowanie w języku powłoki sh Powłoka, interpreter poleceń angshell jest programem uruchamianym standardowo po otwarciu sesji użytkownika przez

Bardziej szczegółowo

Systemy operacyjne Procesy i wątki

Systemy operacyjne Procesy i wątki Systemy operacyjne Procesy i wątki [2] Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie

Bardziej szczegółowo

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19 Systemy Operacyjne Programowanie w języku powłoki sh dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska Systemy operacyjne / Programowanie

Bardziej szczegółowo

Systemy operacyjne Wzajemne wykluczanie i synchronizacja

Systemy operacyjne Wzajemne wykluczanie i synchronizacja Systemy operacyjne [2] Wyścigi w systemie operacyjnym IPC - komunikacja między procesami (ang. InterProcess Communication) W SO wykonujące się procesy często dzielą obszary wspólnej pamięci, pliki lub

Bardziej szczegółowo

Przykład wystąpienia wyścigu. Systemy operacyjne / Wzajemne wykluczanie i synchronizacja str.4/33. Wyścigi w systemie operacyjnym.

Przykład wystąpienia wyścigu. Systemy operacyjne / Wzajemne wykluczanie i synchronizacja str.4/33. Wyścigi w systemie operacyjnym. Przykład wystąpienia wyścigu Systemy Operacyjne Wzajemne wykluczanie i synchronizacja dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Przykład void echo() chin = getchar(); chout = chin; putchar( chout

Bardziej szczegółowo

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów Wieloprogramowanie Systemy Operacyjne Procesy i wątki dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut utomatyki i Informatyki Stosowanej Politechnika Warszawska One program counter B C D switch

Bardziej szczegółowo

Systemy operacyjne Wprowadzenie

Systemy operacyjne Wprowadzenie Systemy operacyjne Wprowadzenie [2] Przedmiot Systemy operacyjne (I) prowadzący: dr inż. Tomasz J. Kruk, T.Kruk@ia.pw.edu.pl, p. 530 przedmiot składa się z wykładu (60 punktów) i laboratorium (40 punktów),

Bardziej szczegółowo

Przedmiot Systemy operacyjne (II) Systemy operacyjne / Wprowadzenie str.4/26. Konspekt wykładu Systemy operacyjne. Przedmiot Systemy operacyjne (I)

Przedmiot Systemy operacyjne (II) Systemy operacyjne / Wprowadzenie str.4/26. Konspekt wykładu Systemy operacyjne. Przedmiot Systemy operacyjne (I) Przedmiot Systemy operacyjne (II) Systemy Operacyjne Wprowadzenie dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut Automatyki i Informatyki Stosowanej Politechnika Warszawska Zadania laboratoryjne

Bardziej szczegółowo

Materiały do wykładu Systemy operacyjne (SOI.B) 1 dla kierunku Informatyka

Materiały do wykładu Systemy operacyjne (SOI.B) 1 dla kierunku Informatyka Spis treści Materiały do wykładu Systemy operacyjne (SOI.B) dla kierunku Informatyka na Wydziale EiTI PW dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl października roku Wprowadzenie Programowanie w języku

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy) Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany

Bardziej szczegółowo

1 Przygotował: mgr inż. Maciej Lasota

1 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 1 1/7 Język C Instrukcja laboratoryjna Temat: Programowanie w powłoce bash (shell scripting) 1 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do programowania w powłoce Skrypt powłoki

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

Bardziej szczegółowo

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

Bardziej szczegółowo

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

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

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej

Bardziej szczegółowo

Procesy, wątki i zasoby

Procesy, wątki i zasoby Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/semestr 2(rok)/(sem) Specjalność Bez specjalności Kod katedry/zakładu w systemie USOS 10000000

Bardziej szczegółowo

Systemy operacyjne. Paweł Pełczyński

Systemy operacyjne. Paweł Pełczyński Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Bardziej szczegółowo

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów

Bardziej szczegółowo

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.

Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post

Bardziej szczegółowo

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

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 http://www.wilno.uwb.edu.

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 http://www.wilno.uwb.edu. SYLLABUS na rok akademicki 010/011 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr 1(rok)/1(sem) Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.

Bardziej szczegółowo

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

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na

Bardziej szczegółowo

Powłoka interpreter poleceń systemu UNIX

Powłoka interpreter poleceń systemu UNIX SOE - Systemy Operacyjne Wykład 4 Powłoka interpreter poleceń systemu UNIX dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Powłoka Interpreter poleceń, powłoka (ang. shell)

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

System komputerowy. System komputerowy

System komputerowy. System komputerowy System komputerowy System komputerowy System komputerowy układ współdziałających ze sobą (według pewnych zasad) dwóch składowych: sprzętu komputerowego (hardware) oraz oprogramowania (software) po to,

Bardziej szczegółowo

Przedmiot: SYSTEMY OPERACYJNE Czas trwania: semestr IV Przedmiot: obowiązkowy Język wykładowy: polski POZIOM

Przedmiot: SYSTEMY OPERACYJNE Czas trwania: semestr IV Przedmiot: obowiązkowy Język wykładowy: polski POZIOM Kierunek INFORMATYKA Przedmiot: SYSTEMY OPERACYJNE Czas trwania: semestr IV Przedmiot: obowiązkowy Język wykładowy: polski Rodzaj zajęć Prowadzący Liczba godzin Tryb zaliczania Wykład prof. F. Seredyński

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Proces y i y w i ąt ą ki

Proces y i y w i ąt ą ki Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III Jan Kazimirski 1 Opis zajęć Prezentacja budowy i zasad działania współczesnego systemu operacyjnego Prezentacja podstawowych elementów systemów operacyjnych i zasad ich implementacji

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA, który zawiera: zmienne, konstrukcje warunkowe i iteracyjne (IF-THEN-ELSE, CASE, DO WHILE, DO UNTIL), konfigurowane środowisko użytkownika. METAZNAKI zestaw

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja systemu RTLinux Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach

Bardziej szczegółowo

Systemy Operacyjne (1)

Systemy Operacyjne (1) Systemy Operacyjne (1) Marcin Gogolewski marcin.gogolewski@wsb.poznan.pl Wyższa Szkoła Bankowa w Poznaniu Poznań, 22 luty 2017 Po co nam system operacyjny Funkcje systemu operacyjnego udostępnianie zasobów

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

SYSTEMY CZASU RZECZYWISTEGO - VxWorks WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w

Bardziej szczegółowo

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Abstrakcja programowania współbieżnego Instrukcje atomowe i ich przeplot Istota synchronizacji Kryteria poprawności programów współbieżnych

Bardziej szczegółowo

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach: Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:

Bardziej szczegółowo

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh. Powłoka I Popularne implementacje W stylu sh (powłoki zdefiniowanej w POSIX) bash (najpopularniejsza) zsh ksh mksh W stylu csh csh tcsh 12 października 2018 1 / 16 Powłoka II Zachęta Komunikuje się z użytkownikiem

Bardziej szczegółowo

Systemy operacyjne. Zajęcia 11. Monitory

Systemy operacyjne. Zajęcia 11. Monitory Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

Systemy operacyjne Operating Systems

Systemy operacyjne Operating Systems Kierunek: Informatyka Przedmiot: Systemy operacyjne Operating Systems Czas trwania: semestr 4 Przedmiot: kierunkowy Język wykładowy: polski Rodzaj zajęć Prowadzący Liczba godzin Tryb zaliczenia Wykład

Bardziej szczegółowo

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

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Systemy operacyjne wykład dr Marcin Czarnota laboratorium mgr Radosław Maj Plan wykładów 1. Wprowadzenie, 2. Procesy, wątki i zasoby, 3. Planowanie przydziału procesora, 4. Zarządzanie pamięcią operacyjną,

Bardziej szczegółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Bash - wprowadzenie. Bash - wprowadzenie 1/39 Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:

Bardziej szczegółowo

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1 Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Planowanie przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny uszeregowania Algorytmy

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny algorytmów planowania Algorytmy planowania (2) 1 Komponenty jądra w planowaniu Planista

Bardziej szczegółowo

Zakład Systemów Rozproszonych

Zakład Systemów Rozproszonych Zakład Systemów Rozproszonych Politechnika Rzeszowska Moduł 1: Wprowadzenie do systemu UNIX Interpretator poleceń Interpreter poleceń użytkownika, czyli inaczej powłoka. Powłoka pośredniczy pomiędzy użytkownikiem

Bardziej szczegółowo

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2) Wstęp do informatyki stęp do informatyki Polecenia (cz.2) Lista procesów top Pokaż listę procesów polecenie interaktywne Procesy Uruchamianie w tle. shell nie czeka na zakończenie procesu, można wydawać

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę

Bardziej szczegółowo

Informatyka. informatyka i nauki komputerowe (computer science)

Informatyka. informatyka i nauki komputerowe (computer science) Informatyka informacja i jej reprezentacje informatyka i nauki komputerowe (computer science) algorytmika efektywność algorytmów poprawność algorytmów złożoność obliczeniowa, problemy NP-trudne (NP-zupełne)

Bardziej szczegółowo

projektowanie systemu

projektowanie systemu projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy

Bardziej szczegółowo

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

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling) Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie

Bardziej szczegółowo

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1 Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)

Bardziej szczegółowo

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są

Bardziej szczegółowo

1.1 Definicja procesu

1.1 Definicja procesu 1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

System operacyjny MACH

System operacyjny MACH Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów

Bardziej szczegółowo

Podstawowe zagadnienia

Podstawowe zagadnienia SWB - Systemy operacyjne w systemach wbudowanych - wykład 14 asz 1 Podstawowe zagadnienia System operacyjny System czasu rzeczywistego Systemy wbudowane a system operacyjny Przykłady systemów operacyjnych

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

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

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Zarządzanie procesorem

Zarządzanie procesorem Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!

Bardziej szczegółowo

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie. Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Opis efektów kształcenia dla modułu zajęć

Opis efektów kształcenia dla modułu zajęć Nazwa modułu: Projektowanie i użytkowanie systemów operacyjnych Rok akademicki: 2013/2014 Kod: EAR-2-324-n Punkty ECTS: 5 Wydział: Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Kierunek:

Bardziej szczegółowo

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0;

Semafory. // G - globalna dla wszystkich. // Wada - aktywne oczekiwanie Test_and_Set(Li); exit when Li = 0; end loop sekcja_krytyczna(i); G := 0; Semafory Rozwiązanie problemu wzajemnego wykluczania Bez dodatkowego wsparcia sprzętowego i programowego Zakładamy jedynie, że zapis do i odczyt z pamięci wspólnej są operacjami atomowymi (czyli istnieje

Bardziej szczegółowo

Jądro systemu operacyjnego

Jądro systemu operacyjnego Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1 Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to

Bardziej szczegółowo

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Skanowanie podsieci oraz wykrywanie terminali ABA-X3 Skanowanie podsieci oraz wykrywanie terminali ABA-X3 Terminale ABA-X3 od dostarczane od połowy listopada 2010 r. są wyposażane w oprogramowanie umożliwiające skanowanie podsieci w poszukiwaniu aktywnych

Bardziej szczegółowo

Warstwy systemu Windows 2000

Warstwy systemu Windows 2000 Warstwy systemu Windows 2000 Tryb użytkownika (User Mode) Tryb jądra (Kernel Mode) Tryb użytkownika (User Mode) Zarządzanie pamięcią wirtualną Cechy charakterystyczne systemu Windows XP: system bardzo

Bardziej szczegółowo

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

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc. Zmienne powłoki Zmienne powłoki (shell variables) to tymczasowe zmienne, które mogą przechowywać wartości liczbowe lub ciągi znaków. Związane są z powłoką, Przypisania wartości do zmiennej następuje poprzez

Bardziej szczegółowo

Informatyka, systemy, sieci komputerowe

Informatyka, systemy, sieci komputerowe Informatyka, systemy, sieci komputerowe Systemy operacyjne wykład 2 Procesy i wątki issk 1 SO koncepcja procesu i zasobu Proces jest elementarną jednostką pracy zarządzaną przez system operacyjny, wykonującym

Bardziej szczegółowo

Podstawy Informatyki Systemy operacyjne

Podstawy Informatyki Systemy operacyjne Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Definicje systemu operacyjnego Zadania systemu operacyjnego Klasyfikacja systemów operacyjnych 2 Zasoby systemu komputerowego

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie

Bardziej szczegółowo

Systemy operacyjne. Plan wykładu

Systemy operacyjne. Plan wykładu Systemy operacyjne / wykład 1 1 Plan wykładu Systemy operacyjne 1. Wprowadzenie 1.1. Podstawowe definicje 1.2. Model i implementacja procesów 1.3. Tryby przetwarzania 1.4. Historia rozwoju SO 2. Programowanie

Bardziej szczegółowo