1. Operating systems, history, concept, structure.
2. Process, inter-process communication, semaphores, monitors, messages.
3. Well known IPC problems - dining philosophers, readers and writers, sleeping barber.
4. Process scheduling - Round-Robin, priorities, multiple queues, two level scheduling.
5. Memory management, mono and multi programming, memory usage, bitmaps, lists.
6. Virtual memory, paging, page replacement algorithms.
7. Paging algorithms modeling, segmentation
8. File systems - file, directory, implementation.
9. File system safety, save environment, users authentication.
10. Security mechanisms, protected domains, access lists, protection models.
11. Input/output, I/O principles, drivers.
12. Dead lock, conditions of deadlock, models, dead lock detection.
13. Dead lock rising, prevention, two phases locking, apparent dead lock
14. New trends in OS, RT systems, OS for embedded devices.
Labs:
1. Unix introduction and basics of programming in C/C++.
2. File redirection, redirection usage for own programs. SSH, remote shell.
3. Usage of make and Makefile. Static and dynamic library usage.
4. Processes, basics interprocess communication using pipes.
5. System call exec, redirection of stdin and stdout.
6. Sockets, socket server, socket client.
7. Usage of threads in processes.
8. Semaphores used for processes synchronization.
9. Message queue, shared memory.
10. File locking.
11. Project development.
12. Project presentation and submission.
Project:
Implementation of selected well-known IPC problem. Client will communicate with server using sockets.
2. Process, inter-process communication, semaphores, monitors, messages.
3. Well known IPC problems - dining philosophers, readers and writers, sleeping barber.
4. Process scheduling - Round-Robin, priorities, multiple queues, two level scheduling.
5. Memory management, mono and multi programming, memory usage, bitmaps, lists.
6. Virtual memory, paging, page replacement algorithms.
7. Paging algorithms modeling, segmentation
8. File systems - file, directory, implementation.
9. File system safety, save environment, users authentication.
10. Security mechanisms, protected domains, access lists, protection models.
11. Input/output, I/O principles, drivers.
12. Dead lock, conditions of deadlock, models, dead lock detection.
13. Dead lock rising, prevention, two phases locking, apparent dead lock
14. New trends in OS, RT systems, OS for embedded devices.
Labs:
1. Unix introduction and basics of programming in C/C++.
2. File redirection, redirection usage for own programs. SSH, remote shell.
3. Usage of make and Makefile. Static and dynamic library usage.
4. Processes, basics interprocess communication using pipes.
5. System call exec, redirection of stdin and stdout.
6. Sockets, socket server, socket client.
7. Usage of threads in processes.
8. Semaphores used for processes synchronization.
9. Message queue, shared memory.
10. File locking.
11. Project development.
12. Project presentation and submission.
Project:
Implementation of selected well-known IPC problem. Client will communicate with server using sockets.