Architektura komputerów i systemy operacyjne 1000-212bAKSO
Wykład
• Architektura komputera:
◦ architektura a organizacja komputera
◦ model von Neumanna
◦ architektury Harward i Princeton
◦ architektury wspierające zrównoleglanie: superskalarna, wektorowa
◦ zrównoleglanie a dostęp do pamięci, architektury wieloprocesorowe i wielordzeniowe, modele SMP i NUMA
• Mikroprocesor od wewnątrz:
◦ rejestry
◦ asembler, kod maszynowy, lista rozkazów
◦ tryby adresowania
◦ CISC a RISC
◦ 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
◦ interfejs binarny aplikacji (ABI)
◦ obsługa wejścia-wyjścia
◦ DMA
• Hierarchia pamięci:
◦ pamięć operacyjna
◦ pamięci podręczne
◦ pamięci masowe
◦ macierze dyskowe
• Wprowadzenie do systemów operacyjnych:
◦ zadania systemu operacyjnego
◦ budowa systemu operacyjnego
◦ funkcje systemowe
• Procesy i zarządzanie nimi:
◦ pojęcie procesu
◦ stany procesu i przejścia między nimi
◦ podział czasu, wieloprogramowość
◦ synchronizacja na poziomie jądra
◦ szeregowanie procesów
• Zarządzanie pamięcią:
◦ przestrzeń adresowa procesu
◦ strategie przydziału pamięci
◦ translacja adresów
◦ pamięć wirtualna
• Systemy plików:
◦ koncepcja pliku
◦ realizacja systemu plików warstwy logicznej i fizycznej
◦ przykłady konkretnych implementacji
• System wejścia-wyjścia:
◦ urządzenia blokowe i znakowe
◦ tablice rozdzielcze
◦ pliki specjalne
◦ struktura dysku
• Wirtualizacja
Laboratorium
• Interpreter poleceń:
◦ podstawowe polecenia: diff, grep, find, ps, wc, sort, cut, tail, head itp.
◦ potoki, strumienie, przekierowania
◦ skrypty bash (instrukcje if, for itp.), argumenty wywołania
◦ skrypty do testowania programów
• Podstawy administracji systemem i maszyna wirtualna:
◦ maszyna wirtualna
◦ zarządzanie użytkownikami
◦ prawa dostępu do plików i katalogów
◦ instalowanie pakietów oprogramowania
◦ pliki konfiguracyjne .bash_profile, .profile, .bashrc itp.
◦ katalogi /etc, /usr, /home itp.
◦ logi systemowe
• Język C
◦ pliki nagłówkowe, preprocesor, kompilator, linker, program make
◦ wskaźniki, sterta, alokacja pamięci, tablica dynamiczna
◦ dynamiczne struktury danych, BST, wskaźniki do wskaźników, valgrind
◦ obsługa plików
• funkcje systemowe: open, close, read, write itp.
• funkcje z biblioteki standardowej: fopen, fclose, fread, fwrite itp.
• pliki specjalne: /dev/null, /dev/zero, /dev/random, /dev/urandom itp.
• Programowanie niskopoziomowe
◦ asemblacja, dezasemblacja, łączenie
◦ podstawowe rozkazy asemblera x86
◦ ABI – integracja z programem w C
◦ współpraca z systemem operacyjnym
◦ debuger
Rodzaj przedmiotu
Wymagania (lista przedmiotów)
Koordynatorzy przedmiotu
W cyklu 2023L: | W cyklu 2024L: |
Efekty kształcenia
Wiedza - absolwent zna i rozumie:
- teoretyczne podstawy z zakresu architektury systemów komputerowych i systemów operacyjnych (K_W02),
- architekturę współczesnych systemów (reprezentacja danych, architektura procesora, podsystemy wejścia-wyjścia, pamięć, architektury wieloprocesorowe (K_W06),
- 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 - absolwent potrafi:
- pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02),
- samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09).
Kompetencje społeczne - absolwent jest gotów do:
- krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01),
- pracy z poszanowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02),
- uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03).
Kryteria oceniania
Ocena końcowa z przedmiotu ustalana jest na podstawie łącznej liczby punktów z laboratorium i egzaminu. Szczegółowe zasady oceniania opisane są w kursie przedmiotu na platformie moodle.
Literatura
A. Silberschatz, P. B. Galvin, Podstawy systemów operacyjnych
W. Stallings, Organizacja i architektura systemu komputerowego
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: