Course detail

Operating Systems

FIT-IOSAcad. year: 2018/2019

The concept of an operating system (OS) as a part of software of a computer system. Architectures of operating systems, a classification of operating systems. An overview of the contemporary operating systems. The kernel of UNIX, its structure, graphical and textual interfaces, command languages. Process management, context switching, scheduling, interprocess communication. Memory management, paging, virtual memory. Synchronization of processes, semaphores and other synchronization means, deadlock, starvation.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Students are acquainted with the basic principles of operating systems (with emphasis on the UNIX operating system) and they understand the influence of operating systems upon the operation of complex computing systems. Students are able to exploit scripts for solving various tasks in a UNIX-based environment.

Prerequisites

A basic knowledge of programming in C.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Not applicable.

Assesment methods and criteria linked to learning outcomes

  • Evaluation of the two home assignments individually solved by the students (max 30 points).
  • Evaluation of a mid-term exam (max 10 points).

Exam prerequisites:
The minimal total score of 10 points gained out of the home assignments and the mid-term exam.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

The goal is to acquaint students with the principles of operating systems in general and with the basic concepts of the UNIX operating system.

Specification of controlled education, way of implementation and compensation for absences

  • Solving two individual home assignments, a combined final exam.
  • The minimal number of points which must be obtained from the final exam is 27. Otherwise, no points will be assigned to a student.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Basic literature

Silberschatz, A., Galvin, P.B., Gagne, G.: Operating System Concepts, 10. vydání, John Wiley & Sons, 2018. (CS)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme IT-BC-3 Bachelor's

    branch BIT , 1 year of study, summer semester, compulsory

Type of course unit

 

Lecture

39 hod., optionally

Teacher / Lecturer

Syllabus

  1. Introduction. Evolution of computers and operating systems (OS). Requirements on OS, classification of OS, standards. The basic terminology and the general structure of OS.
  2. The UNIX operating system. The history and the most important development branches. The basic principles and structure of UNIX. The structure of the UNIX kernel, its interface and the different forms of communication with the kernel.
  3. UNIX shell. Basic commands, programs, scripts. Special symbols. Input/output redirection, pipes, background processes, sub-shell. Variables, control structures.
  4. A basic introduction to programming in UNIX. Languages, compilers, principles of linking programs, dynamically linked libraries. Principles of the X-Window graphical user interface.
  5. Standard utilities of UNIX.
  6. File systems. The physical and logical structure of disks. Types of files, i-nodes, storing files on a disk.
  7. Access rights to files in UNIX, users and groups, the suid and sgid attributes, the typical structure of directories in a UNIX system.
  8. Input and output. The corresponding kernel services. Data structures and algorithms used by the input/output subsystem of the kernel.
  9. Management of processes. Loading the system, the init process. Fork, exec, exit, and wait calls. States of processes, scheduling.
  10. Memory management. Address spaces, address translation, memory pages.
  11. Virtual memory.
  12. Mutual exclusion, semaphores and other synchronization means.
  13. Typical synchronization tasks, deadlocks, starvation.

Project

13 hod., compulsory

Teacher / Lecturer

Syllabus

  1. Creating scripts by means of UNIX shell and the standard utilities of UNIX.
  2. Process synchronization in UNIX using the C language.