Prowadzący: Michał Hanćkowiak
(Wyłącznie do użytku wewnętrznego !.)
Uwaga: slajdy są dostępne w formacie PostScript/
skompresowanym (potrzebne oprogramowanie: GhostScript, GhostView, WinZip
lub coś podobnego).
Silberschatz, Galvin "Podstawy systemów operacyjnych" (wydanie 3)
literatura pomocnicza ...
inne źródła informacji ...
Unix z perspektywy "zwykłego" użytkownika ...
Unix z perspektywy administratora ...
Wyłącznie egzamin pisemny; kilka zadań opisowych i kilka zadań "obliczeniowych", w których trzeba zastosować znane definicje
Przykładowe tematy zadań "obliczeniowych":
Uwaga: proszę przejrzeć wszystkie slajdy wykładu i
zwrócić uwagę na demonstrowane tam "symulacje" różnych algorytmów; warto
to sobie przećwiczyć ...
· Wstęp; definicje s.o. (=systemów operacyjnych).
· Unix/perspektywa użytkownika (na użytek ćwiczeń): pliki i katalogi; procesy; potoki i łącza; podstawowe polecenia, powłoka "ksh" lub "bash", program "awk".
· Historia rozwoju systemów operacyjnych: systemy wsadowe, SPOOLing, wieloprogramowe, z podziałem czasu, dla komputerów osobistych; systemy komputerowe równolegle i rozproszone
· Architektura systemu komputerowego: składniki systemu komputerowego i ich przeznaczenie, przerwania, synchroniczne i asynchroniczne operacje we/wy, ochrona sprzętowa.
· Klasyfikacja architektur s.o.: architektura prosta, warstwowa, z mikrojądrem, z maszynami wirtualnymi.
· Składniki s.o.: zarządzanie procesami, zarządzanie pamięcią operacyjną, zarządzanie plikami/katalogami, zarządzanie pamięcią pomocniczą, zarządzanie we/wy, system ochrony, interpreter poleceń.
· Rodzaje pamięci w systemie komputerowym: hierarchia pamięci, pamięć pomocnicza, pamięć podręczna; budowa dysku magnetycznego.
· Zarządzanie pamięcią operacyjną: tworzenie i uruchamianie programów; problemy związane z przydzielaniem obszarów pamięci, fragmentacja; adresy logiczne i fizyczne komórek pamięci; stronicowanie i segmentacja; stronicowanie i segmentacja w procesorze Intel 80386; pamięć wirtualna, algorytmy zastępowania stron FIFO, LRU.
· Zarządzanie procesami: definicja procesu, stany procesu, blok kontrolny procesu, diagramy kolejkowe; planista krótko, średnio i długo terminowy, metody planowania (FCFS, SJF, RR, planowanie wielopoziomowe, diagramy Gantta); wymiana (swapping); wątki; problemy współbieżnie działających procesów, synchronizacja procesów, problem sekcji krytycznej, semafor ogólny i binarny, implementacja semafora, monitor, inne klasyczne problemy współbieżności (czytelników i pisarzy, 5-filozofów), zakleszczenie.
· Zarządzanie plikami/katalogami oraz pamięcią pomocniczą: definicja pliku, atrybuty pliku, operacje na pliku, pojęcie deskryptora pliku, metody dostępu do pliku; definicja katalogu, operacje na katalogu, rodzaje katalogów; ochrona plików; implementacja systemu plików, metody przydziału bloków dyskowych (listowy, indeksowy, FAT), planowanie dostępu do dysku (FCFS, LOOK); systemy plików DOS-u i Unixa, partycje dysków w komputerach osobistych.
· Zarządzanie wejściem/wyjściem: urządzenie we/wy, kontroler, moduł sterujący urządzenia; klasyfikacja urządzeń; jak działa podsystem we/wy w jądrze systemu operacyjnego; system we/wy w Unixie, pliki specjalne ("b" i "c"), buforowa pamięć podręczna, tablica rozdzielcza.
· Interfejs programisty: funkcje systemowe; fun. sys. Unixa dotyczące procesów: fork(), exit(), wait(), exec*(); fun. sys. Unixa dotyczące plików: open(), close(), read(), write(); pojęcie deskryptora do pliku, przeadresowywanie; dostęp do urządzeń jak do plików (pliki specjalne Unixa); komunikacja między procesami przy pomocy łącz.
· System operacyjny Unix: historia; najważniejsze wersje (SystemV, BSD, Linux); architektura systemów unixowych; perspektywa użytkownika, programisty i administratora (katalog /etc, pliki: passwd, shadow, group, fstab, inittab).
· System operacyjny Windows NT: podobieństwa i różnice między wersjami “Workstation” oraz “Server”; ogólna architektura systemu: warstwa API, moduł NT Executive, mikrojądro; budowa modułu NT Executive: warstwa HAL, podstawowe moduły, środowiska pracy (NTDVM, Win16/32, OS/2, POSIX)
Uwaga:
Zadanie domowe 1Można przesyłać mi rozwiązania poniższych zadań domowych na adres mailowy:
mhanckow@main.amu.edu.pl, subject: SOP121 - zadanie domowe nr X.Spośród nadesłanych rozwiązań "zadania domowego X" wybiorę JEDNO najlepsze i osoba która je nadesłała zostanie zwolniona z egzaminu z oceną 5.0. (Tak więc liczba zwolnionych osób <= 3).
Proszę wyrażać chęć rozwiązania danego zadania mailem (subject: SOP121 - chce wykonac zad dom X), abym mógł umieszczać informacje o liczbie osób zainteresowanych wykonaniem danego zadania!
Liczba osób, które zadeklarowały chęć wykonania zadań domowych:
zadanie domowe nr liczba osób 1 2 2 1 3 0 Ostateczny termin nadsyłania rozwiązań: 3.06.2005 (czyli koniec semestru).
Dodatkowo należy wykonać:
Wskazówki:
oto jak wygląda stos po uruchomieniu procedury proc():
void Proc()oto jak wygląda stos po uruchomieniu procedury handler() w wyniku wystąpienia przerwania:
{ int i,j;
// <-- poniżej jest zawartość stosu w tym miejscu
}
----------------------------------------------------------------------------
<-- kierunek rozrastania się stosu | i | j | adres powrotny | XXXXXX ...
----------------------------------------------------------------------------
^ ^
SS:SP SS:BP
a oto koniec i początek procedury handler (ze słowem "interrupt"):void interrupt handler()
{ int i,j;
// <-- poniżej jest zawartość stosu w tym miejscu
}
adres powrotny
| ------- |
----------------------------------------------------------------------------
<-- | i | j | BP | ... | BX | AX | IP | CS | Flags | XXXXXXXXXX .........
----------------------------------------------------------------------------
^ ^
SS:SP SS:BP
_handler: void interrupt handler(void)
cs:0074 50 push ax
cs:0075 53 push bx
cs:0076 51 push cx
cs:0077 52 push dx
cs:0078 06 push es
cs:0079 1E push ds
cs:007A 56 push si
cs:007B 57 push di
cs:007C 55 push bp
cs:007D BD2058 mov bp,5820
cs:0080 8EDD mov ds,bp
cs:0082 8BEC mov bp,sp
cs:0084 83EC0C sub sp,000C
#INT03#72: int i=0x111,j=0x222,k=0x333,l=0x444,m=0x555,n=0x666
cs:0087 C746FE1101 mov word ptr [bp-02],0111
cs:008C C746FC2202 mov word ptr [bp-04],0222
cs:0091 C746FA3303 mov word ptr [bp-06],0333
cs:0096 C746F84404 mov word ptr [bp-08],0444
cs:009B C746F65505 mov word ptr [bp-0A],0555
cs:00A0 C746F46606 mov word ptr [bp-0C],0666
..................................
..................................
#INT03#99: }
cs:0136 8BE5 mov sp,bp
cs:0138 5D pop bp
cs:0139 5F pop di
cs:013A 5E pop si
cs:013B 1F pop ds
cs:013C 07 pop es
cs:013D 5A pop dx
cs:013E 59 pop cx
cs:013F 5B pop bx
cs:0140 58 pop ax
cs:0141 CF iret
Dokumentacje i przykłady:
(Koniec opisu "Zadania domowego 1")
Zadanie domowe 2
Zadanie domowe 3