Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowania
Strona główna

Systemy operacyjne

Informacje ogólne

Kod przedmiotu: 1000-I1SOP
Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji 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 i Informatyki
Grupy:
Strona przedmiotu: https://plas.mat.umk.pl/moodle/course/view.php?id=1038
Punkty ECTS i inne: 6.00 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
Całkowity nakład pracy studenta:

30( wykład) + 30(laboratorium) + 30(przygotowanie do zajęć)

+ 20( studiowanie literatury) + 45 (przygotowanie do egzaminu/zaliczenia) = 155 godzin

Efekty uczenia się - wiedza:

Po ukończeniu kursu 1000-I1SOP student:

W1: definiuje podstawowe pojęcia zawiązane z systemami operacyjnymi, w tym m.in. architekturę systemu i funkcje jej składowych(K_W05);

W2: klasyfikuje systemy operacyjne (ze względu na ich budowę oraz przeznaczenie)(K_W08);

W3: wylicza algorytmy charakterystyczne dla systemów operacyjnych w tym algorytmy zarządzania procesami, pamięcią i we/wy(K_W08);

W4: analizuje własności poszczególnych składowych systemu operacyjnego (w tym zarządzanie procesami, pamięcią, we/wy)(K_W08);

W5: wyznacza algorytmy do rozwiązywania klasycznych problemów synchronizacji(K_W08);

W6: stosuje algortymy (w tym m. in. szeregowania, wymiany, bankiera) do rozwiązywania konkretnych problemów(K_W08).

Efekty uczenia się - umiejętności:

Po ukończeniu kursu 1000-I1SOP student:



U1: definiuje podstawowe pojęcia zawiązane z systemami operacyjnymi, w tym m.in. architekturę systemu i funkcje jej składowych;(K_U09)

U2: klasyfikuje systemy operacyjne (ze względu na ich budowę oraz przeznaczenie(K_U07));

U3: wylicza algorytmy charakterystyczne dla systemów operacyjnych w tym algorytmy zarządzania procesami, pamięcią i we/wy(K_U07);

U4: analizuje własności poszczególnych składowych systemu operacyjnego (w tym zarządzanie procesami, pamięcią, we/wy)(K_U09);

U5: wyznacza algorytmy do rozwiązywania klasycznych problemów synchronizacji(K_U21);

U6: stosuje algortymy (w tym m. in. szeregowania, wymiany, bankiera) do rozwiązywania konkretnych problemów(K_U21).

Efekty uczenia się - kompetencje społeczne:

K1: Efektywnie pracuje ze złożonym oprogramowaniem systemow operacyjnych(K_K03);

K2: Myśli twórczo w celu udoskonalenia istniejących rozwiązań w systemach operacyjnych(K_K02);

K3: Przekazuje zdobytą wiedzę w zrozumiały sposób (K_K05).

Metody dydaktyczne eksponujące:

- pokaz

Metody dydaktyczne podające:

- wykład informacyjny (konwencjonalny)

Metody dydaktyczne poszukujące:

- laboratoryjna

Skrócony opis:

Jest to podstawowy kurs systemów komputerowych. Szczególną uwagę poświęcono: algorytmom szeregowania zadań i we/wy na dysk, zastępowania stron i przydziału zasobów; zarządzania procesami i wątkami i ich synchronizowania; zarządzania pamięcią główną i wirtualną; zarządzania wejściem-wyjściem; generowania systemów Linux, Windows i Solaris.

Laboratorium ma charakter zarazem praktyczny (funkcje i polecenia systemowe, generacja systemu) jak i teoretyczny (algorytmy przydziału pamięci podręcznej, głównej i wirtualnej, diagramy Gantta, macierze alokacji zasobów, ciągi odniesień).

Pełny opis:

  • Ewolucja oraz instalacja systemów operacyjnych:
    System komputerowy. System operacyjny. Rozwój systemów operacyjnych. Przykłady systemów operacyjnych. Instalacja systemów operacyjnych: Linux, Solaris, Windows 98/2K/2K3S/XP/Vista/7/8.1, Mac OS X.
  • Ewolucja systemów komputerowych:
    Architektura i organizacja komputerów. Funkcje i struktura komputera. Komputer IAS: lista rozkazów, działanie. Ewolucja a wydajność komputerów.
  • Struktura systemu komputerowego:
    Magistrala systemowa. Funkcje jednostki centralnej. Struktura wejścia-wyjścia. Struktura pamięci. Pamięć podręczna. Zasada lokalności odniesień.
  • Działanie systemu komputerowego:
    Rozkazy i tryby adresowania. Podstawowy cykl rozkazu. Przerwania. Ochrona CPU i pamięci. Start systemu.
  • Struktura systemów operacyjnych:
    Składowe i usługi systemów operacyjnych. Funkcje i programy systemowe. Struktury systemów. Komunikacja. Architektury systemów. Wirtualizacja. Chmury i Internet Rzeczy. Projektowanie systemu i jego implementacja. Bezpieczeństwo systemów.
  • Procesy:
    Koncepcja procesu. Blok kontrolny procesu. Planowanie procesów. Działania na procesach. Procesy współpracujące. Komunikacja międzyprocesowa. Komunikacja klient-serwer. Koncepcja wątku.
  • Planowanie przydziału procesora:
    Kryteria planowania. Algorytmy planowania: FCFS, HRRN, SJF, SRTF, PRI, RR. Ocena algorytmów planowania. Przykłady: Solaris, Windows.
  • Szeregowanie wieloprocesorowe i w czasie rzeczywistym:
    Klasyfikacja systemów wieloprocesorowych. Algorytmy szeregowania wieloprocesorowego. Systemy czasu rzeczywistego. Odwrócenie priorytetów. Algorytmy szeregowania w czasie rzeczywistym. Przykłady: Linux, SVR4, Windows.
  • Synchronizowanie procesów:
    Problem sekcji krytycznej. Sprzętowe środki synchronizacji. Semafory. Klasyczne problemy synchronizacji. Regiony krytyczne. Monitory. Synchronizacja w systemach operacyjnych. Transakcje niepodzielne.
  • Impas:
    Problem impasu. Charakterystyka impasu. Metody postępowania z impasem. Zapobieganie impasom. Unikanie impasu. Algorytm bezpieczeństwa (bankiera). Algorytm wykrywania impasów. Likwidowanie impasów.
  • Zarządzanie pamięcią:
    Logiczna i fizyczna przestrzeń adresowa. Wymiana. Przydział ciągły. Fragmentacja. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem. Przykłady: Intel 80386.
  • Pamięć wirtualna:
    Stronicowanie na żądanie. Algorytmy zastępowania stron: FIFO, OPT, LRU, CLOCK. Anomalia Belady'ego. Przydział ramek. Szamotanie. Przydział pamięci jądra. Przykłady: Linux, Windows, Solaris.
  • Systemy wejścia-wyjścia:
    Sprzęt wejścia-wyjścia. Odpytywanie. Przerwania wejścia-wyjścia. Bezpośredni dostęp do pamięci (DMA). Użytkowy interfejs wejścia-wyjścia. Planowanie wejścia-wyjścia dla dysków. Algorytmy planownia dysków: LIFO, SSTF, SCAN, LOOK. Buforowanie. Podsystem wejścia-wyjścia w jądrze. Przekształcenie zamówień wejścia-wyjścia. Strumienie. Przykłady: Linux, Windows, SVR4.
  • Systemy plików:
    Organizacja plików. Metody dostępu. B-drzewa. Struktura katalogowa. Prawa dostępu. Grupowanie rekordów. Alokacja plików. Zarządzanie plikami w systemach Unix i Windows. Sieciowe systemy plików: NFS, Samba.
  • System operacyjny Linux:
    Historia. Podstawy projektu. Struktura kodu źródłowego. Moduły jądra. Zarządzanie procesami. Planowanie. Zarządzanie pamięcią. Systemy plików. Wejście-wyjście. Komunikacja międzyprocesowa. Struktura podsystemu sieciowego. Generowanie systemu Linux. Start systemu Linux.
Literatura:

Literatura podstawowa:

  1. A. Silberschatz, A., Galvin, P.B., Gagne, G. – Podstawy systemów operacyjnych, t.1-2, PWN, 2021 (tł. 10th ed.).
  2. W. Stallings - Systemy operacyjne. Architektura, funkcjonowanie i projektowanie, Helion, 2018 (tł. 9th ed.).
  3. A. S. Tanenbaum, H. Bos – Systemy operacyjne, Helion, 2016 (tł. IV ed.).
  4. W. Stallings - Operating Systems. Internals and Design Principles, 8th ed., Pearson, 2015.
  5. A. Silberschatz et al. – Operating System Concepts, 9th ed., Wiley, 2013.
  6. W. Stallings - Computer Organization and Architecture. Designing for Performance, 8th ed., Pearson, 2010.
  7. A. Silberschatz, P.B. Gavin, G. Gagne - Podstawy systemów operacyjnych, WNT, 2005, 2006 (tł. 6th ed.).
  8. W. Stallings - Systemy operacyjne, Robomatic, 2004; PWN, 2006 (tł. 5th ed.).
  9. Linux Magazine.

Literatura uzupełniająca:

  1. Wikipedia - Operating system.
  2. M. du Sautoy– Kod kreatywności. Sztuka i innowacje w epoce sztucznej inteligencji, Copernicus Center Press, 2020.
  3. C. L. Evans – Pionierki Internetu, WUJ, Kraków, 2020.
  4. S. P. Kane, K. Matthias – Docker. Praktyczne zastosowania, wyd. II, Helion, 2019.
  5. A. Holt, C.-Y. Huang – Embedded Operating Systems, 2nd ed., Springer, 2018.
  6. M. R. Antognazza – Leibniz. Biografia intelektualna, Copernicus Center Press, 2018.
  7. A. Silberschatz et al. – Operating System Concepts, 10th ed., Wiley, 2018.
  8. S. Monk - Elektronika z wykorzystaniem Arduino i Raspberry Pi , Helion, 2018.
  9. W. Stallings - Operating Systems. Internals and Design Principles, 9th ed., Pearson, 2018.
  10. C. Beveridge - Matematyka od środka, Wydawnictwo Olesiejuk, 2017.
  11. W. Stallings - Cryptography and Network Security. Principles and Practice, 7th ed., Pearson, 2017.
  12. D. Molloy - Exploring Raspberry Pi. Interfacing to the Real World with Embedded Linux, Wiley, 2016.
  13. W. Stallings - Computer Organization and Architecture. Designing for Performance, 10th ed., Pearson, 2016.
  14. W. Isaacson – Innowatorzy, Insignia, 2016.
  15. A. S. Tanenbaum, H. Bos – Modern Operating Systems , 4th ed., Pearson, 2015.
  16. R. Fox – Linux with Operating System Concepts, CRC Press, 2015.
  17. A. A. Stepanov, D. E. Rose - Od matematyki do programowania uogólnionego, Helion, 2015.
  18. W. Stallings, L. Brown - Computer Security. Principles and Practice, 3rd ed., Pearson, 2015.
  19. W. Stallings - Data and Computer Communications, 10th ed.,Pearson, 2014.
  20. A. Hodges - Alan Turing:ENIGMA, Albatros, 2014.
  21. A. Robinson, M. Cook – Raspberry Pi. Najlepsze projekty, Helion, 2014.
  22. D. Norris – Raspberry Pi. Niesamowite projekty, Helion, 2014.
  23. S. Monk – Raspberry Pi. Receptury, Helion, 2014.
  24. R. Lowe – Jądro Linuksa, Helion, 2014.
  25. E. Upton, G. Halfacree – Raspberry Pi, Helion, 2013.
  26. K. Yaghmour – Embedded Android, O'Reilly Media Inc., 2013.
  27. D. Pogue – Windows 8: The Missing Manual, O'Reilly Media Inc., 2013.
  28. I. C. Bertolotti, G. Manduchi – Real-time embeded systems. Open-source Operating systems perspective,CRC Press, 2013.
  29. W. Stallings - Operating Systems. Internals and Design Principles, 7th ed., Pearson, 2012.
  30. I. Bondecka-Krzykowska - Historia obliczeń, Wydawnictwo Naukowe UAM, 2012.
  31. A. S. Tanenbaum, D. J. Wetherall - Sieci komputerowe , wyd. V, Helion, 2012.
  32. M. Serafin - Wirtualizacja w praktyce , Helion, 2012.
  33. V. Torra - Od abaku do komputera. Algorytmy i obliczenia, BUKA Books, 2012.
  34. C. Easttom - Computer Security Fundamentals, 2nd ed, Pearson, 2012.
  35. E. Nemeth, G. Snyder, T. R. Hein, B. Whaley, T. Morreale, N. McClain, R. Jachim, D. Schweikert, T. Oetiker - Unix i Linux. Przewodnik administratora systemów , Helion, 2011.
  36. A. S. Tanenbaum – Systemy operacyjne, Helion, 2010.
  37. R. Love - Linux Kernel Development, 3rd ed., Pearson, 2010.
  38. R. Love - Linux. Programowanie systemowe, Helion, 2008.
  39. W. Curtis Preston - Archiwizacja i odzyskiwanie danych, Helion, 2008.
  40. A. Silberschatz et al. - Operating System Concepts with Java, 7th ed., Wiley, 2007.
  41. M. Grajek - ENIGMA. Bliżej prawdy, Poznań, 2007.
  42. M. J. Rochkind - Programowanie w systemie UNIX dla zaawansowanych, WNT, 2007.
  43. A. S. Tanenbaum - Strukturalna organizacja systemów komputerowych, Helion, 2006.
  44. G. Ifrah - Historia powszechna cyfr, W.A.B., 2006.
  45. W. Stallings - Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajność, wyd. III, PWN, Warszawa, 2004 (tł. 6th ed.).
  46. A. S. Tanenbaum - Sieci komputerowe, Helion, 2004.
  47. R. Lowe - Linux Kernel. Przewodnik programisty, Helion, 2004.
  48. M. Gorman - Understanding the Linux Virtual Memory Manager, Prentice Hall, 2004.
  49. L. Null, J. Lobur - Struktura organizacyjna i architektura systemów komputerowych, Helion, 2004.
  50. M. du Sautoy - The Music of the Primes. Why an Unsolved Problem in Mathematics Matters., Harper Perennial, 2004.
  51. Æ. Frisch - UNIX. Administracja systemu, RM, 2003.
  52. D. E. Comer - Sieci komputerowe i intersieci, wyd. 3, WNT, Warszawa, 2003.
  53. J. Glenn Brookshear - Informatyka w ogólnym zarysie, WNT, 2003.
  54. C. Simmons et al. - Windows XP w sieciach, RM, 2003.
  55. D. E. Knuth - Sztuka programowania, WNT, 2002.
  56. W. v. Hagen - Systemy plików w Linuxie, Helion, Gliwice, 2002.
  57. M. Mitchell, J. Oldham, A. Samuel - Linux. Programowanie dla zaawansowanych, RM, 2002.
  58. W. Richard Stevens - Programowanie w środowisku systemu UNIX, WNT, 2002.
  59. E. Bott et al. - Windows XP, RM, 2002.
  60. D. P. Bovet, M. Cesati - Linux Kernel, RM, Warszawa, 2001.
  61. U. Vahalia - Jądro systemu UNIX. Nowe horyzonty, WNT, 2001.
  62. W. Richard Stevens - UNIX programowanie usług sieciowych, WNT, 2001.
  63. M. Johnson - Oprogramowanie użytkowe w systemie Linux, WNT, 2000.
  64. R. Eckstein, D. Collier-Brown, P. Kelly - Samba, RM, Warszawa, 2000.
  65. M. Beck, H. Bohme, M. Dziadzka, U. Kunitz, R. Magnus, D. Verworver - Linux Kernel. Jądro Linuxa, Mikom, 1999.
  66. M. Bach - Budowa systemu UNIX, WNT, 1995.
  67. A. S. Tanenbaum - Rozproszone systemy operacyjne, WNT, 1995.
  68. P. Silvester - System operacyjny UNIX, WNT, 1991.
  69. J. Deminet - System operacyjny MS-DOS, WNT, 1980.
  70. H. Kaufmann - Dzieje komputerów, PWN, 1980.
  71. E. G. Coffman, Jr. (ed.) - Teoria szeregowania zadań, WNT, 1980.
  72. A. Shaw - Projektowanie logiczne systemów operacyjnych, WNT, 1980.
  73. Per Brinch Hansen - Podstawy systemów operacyjnych, WNT, 1979.
  74. J. Stańko - Programowanie w języku Assembler JS EMC, Wyd. Pol. Wr., 1977.
  75. H. Katzan - Operating systems, Van Nostrand, 1973.
  76. H. Katzan - Computer organization and the System/370, Van Nostrand, 1971.
  77. C. B. Germain - Programming the IBM 360, Englewood Cliffs, N.J.: Prentice-Hall, 1968.
  78. S. M. Ulam - Maszyny liczące, w: Matematyka w świecie współczesnym, PWN, 1966.
  79. А. Я. Хинчин - Цепные дроби, изд. 3-е, Физматгиз, Москва, 1961.
Metody i kryteria oceniania:

Egzamin obowiązkowy. Laboratorium kończy się zaliczeniem na ocenę.

Zajęcia w cyklu "Semestr letni 2021/22" (zakończony)

Okres: 2022-02-21 - 2022-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 150 miejsc więcej informacji
Koordynatorzy: Zbigniew Szewczak
Prowadzący grup: Rafał Bocian, Krzysztof Czarkowski, Zbigniew Szewczak, Jerzy Szymański
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
Uwagi:

zajęcia zdalne synchroniczne na Moodle (BBB)

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.
ul. Jurija Gagarina 11, 87-100 Toruń tel: +48 56 611-40-10 https://usosweb.umk.pl/ kontakt deklaracja dostępności USOSweb 7.0.2.0-1 (2024-03-12)