Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Systemy operacyjne

Informacje ogólne

Kod przedmiotu: 1000-213bSOP
Kod Erasmus / ISCED: 11.302 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Systemy operacyjne
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obowiązkowe dla II roku JSIM - wariant 3I+4M
Punkty ECTS i inne: (brak) Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Architektura komputerów i sieci 1000-212bAKS
Indywidualny projekt programistyczny 1000-222bIPP
Wstęp do programowania 1000-211bWPI

Skrócony opis:

Celem zajęć jest przedstawienie roli i zadań systemu operacyjnego w oprogramowaniu komputera oraz omówienie zagadnień realizacji algorytmów, struktur danych i ich implementacji. Prezentowane są techniki zarządzania podstawowymi zasobami sprzętowymi komputera procesorem, pamięcią operacyjną oraz wirtualną i urządzeniami wejścia-wyjścia oraz ich wpływ na efektywność funkcjonowania systemu jako całości.

Pełny opis:

*** Wykład:

* Architektura komputera:

+ architektura a organizacja komputera;

+ model von Neumanna (SISD-single instruction single data);

+ architektury Harward i Princeton;

+ zrównoleglanie: architektura superskalarna, architektura wektorowa (SIMD-single instruction multiple data), architektura z bardzo długim słowem instrukcji (VLIW

-very long instruction word), architektura z jawnie równoczesnymi instrukcjami (EPIC-explicit parallel instruction computing);

+ zrównoleglanie a dostęp do pamięci, architektury wieloprocesorowe i wielordzeniowe (MIMD-multiple instruction multiple data):

SMP, NUMA, COMA;

* Mikroprocesor od wewnątrz:

+ rejestry, lista instrukcji, tryby adresowania argumentów;

+ CISC a RISC;

+ interfejs binarny aplikacji (ABI) na przykładzie 64-bitowego ABI wykorzystywanego w Linuksie na architekturach Intel64 i AMD64 oraz ARM EABI;

+ cykl rozkazowy, cykl procesora, cykl zegara;

+ przetwarzanie potokowe.

* Mikroprocesor w interakcji ze światem zewnętrznym:

+ system przerwań, wyjątki;

+ sprzętowe wsparcie dla systemów operacyjnych;

+ poziomy ochrony,

+ wywoływanie usług systemowych,

+ segmentacja i stronicowanie;

+ obsługa wejścia-wyjścia;

+ DMA.

* Hierarchia pamięci:

+ pamięci nieulotne: ROM, EEPROM, Flash;

+ pamięci ulotne o dostępie swobodnym (RAM): statyczne (SRAM), dynamiczne asynchroniczne (DRAM), dynamiczne synchroniczne (SDRAM, DDR-RAM);

+ pamięci podręczne;

+ pamięci masowe: dyski magnetyczne, dyski optyczne, dyski magnetycznooptyczne;

+ macierze dyskowe.

* Wprowadzenie do systemów operacyjnych: zadania systemu operacyjnego, budowa systemu operacyjnego, funkcje systemowe.

* Struktura procesów: pojęcie procesu, tryby pracy, stany procesów i przejścia między nimi, zmiana kontekstu, synchronizacja na poziomie jądra.

* Szeregowanie procesów.

* Zarządzanie pamięcią: przestrzeń adresowa procesu, adresowanie, strategie przydziału pamięci, pamięć wirtualna.

* Systemy plików: koncepcja pliku, realizacja systemu plików warstwy logicznej i fizycznej, przykłady konkretnych implementacji.

* Podsystem wejścia-wyjścia: urządzenia blokowe i znakowe, tablice rozdzielcze, pliki specjalne, struktura dysku i szereg owanie żądań.

* Wirtualizacja

*** Laboratorium:

Zadanie zaliczeniowe polegające na napisaniu programu, który składałby się z modułu napisanego w języku C i modułu napisanego w asemblerze.

Zadanie ma ilustrować, jak napisać w asemblerze funkcję, którą można wywołać z języka C, jak z poziomu asemblera wywoływać funkcje napisane w języku C, jak z poziomu asemblera wywoływać funkcje systemowe (ilustracja ABI, które powinno być omówione na wykładzie). Procedury asemblerowe powinny wykonywać jakieś zaawansowane obliczenia i korzystać intensywnie z pamięci, dzięki czemu pomiary czasu ich wykonywania dla różnych wartości parametrów powinny ujawnić istnienie hierarchii pamięci.

Dodatkowo laboratorium przedstawia materiał z następujących tematów:

* Podstawy administracji: instalowanie i konfigurowanie systemu, instalowanie oprogramowania, dzienniki systemowe, proces uruchamiania systemu, mechanizmy kontroli dostępu, powłoka i skrypty powłoki, platformy wirtualne.

* Zarządzanie procesami: kontrolowanie procesów, sygnały, przegląd mechanizmów synchronizacji i komunikacji międzyprocesowej.

* Funkcje systemowe: mechanizm wywoływania funkcji systemowych, dodawanie nowych funkcji do systemu operacyjnego.

* Szeregowanie procesów: analiza i zmiana algorytmu szeregowania procesów.

* Zarządzanie pamięcią.

* Podsystem wejścia-wyjścia: tworzenie podprogramów obsługi urządzeń.

* Systemy plików.

* Bezpieczeństwo systemu operacyjnego

* Interpreter poleceń

* Tworzenie pakietów z oprogramowaniem

Literatura:

A. Silberschatz, P. Galvin, G. Gagne, Podstawy systemów operacyjnych

D.P. Bovet, M. Ceasti, Linux Kernel

R. Love, Linux Kernel Development

W. Richard Stevens, Programowanie w środowisku systemu UNIX

A. S. Tanenbaum, A. S. Woodhull, Operating Systems Design and Implementation, 3rd Edition

W. Stallings, Organizacja i architektura systemu komputerowego

D. A. Patterson, J. L. Hennessy, Computer Organization and Design , 5th Edition: The Hardware/Software Interface

D. A. Patterson, J. L. Hennessy, Computer Organization and Design , 5th Edition: A Quantitative Approach

Efekty uczenia się:

Wiedza:

ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, algorytmów i złożoności, architektury systemów komputerowych, systemów operacyjnych, technologii sieciowych, języków i paradygmatów programowania, baz danych, inżynierii oprogramowania (K_W02);

ma podstawową wiedzę na temat architektury współczesnych systemów (logika układów cyfrowych i reprezentacja danych, architektura procesora,

wejście - wyjście, pamięć, architektury wieloprocesorowe) (K_W06);

zna zasady działania systemów operacyjnych ze szczególnym uwzględnieniem procesów, współbieżności, szeregowania zadań i zarządzania pamięcią (K_W07).

Umiejętności:

potrafi pisać, uruchamiać i testować programy w wybranym środowisku programistycznym (K_U05);

rozumie niskopoziomowe zasady wykonywania programów (K_U08);

posługuje się przyjętymi formatami reprezentacji różnego rodzaju danych (liczby, tablice, struktury, tekst), pamiętają c o ich ograniczeniach, np. związanych z arytmetyką komputera (K_09);

potrafi skonfigurować wybrany system operacyjny oraz nim administrować, w tym instalować potrzebne oprogramowanie (K_U10);

potrafi wyjaśnić na czym polega zarządzanie pamięcią w systemach operacyjnych, co to jest hierarchia pamięci, co to jest pamięć wirtualna (K_U12);

potrafi ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych oraz wybrać i zastosować właściwą metodę i narzędzia do typowych zadań informatycznych (K_U22)

Przedmiot nie jest oferowany w żadnym z aktualnych cykli dydaktycznych.
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.3.0 (2024-03-22)