EC3820 Computer Systems

The course presents a unified approach for the design of computer systems stressing the interacting processes implemented in hardware, software, and firmware. General features of operating systems are studied as well as specific features of an existing system. The elements of a multiprogramming system are introduced.

Prerequisite

EC2820

Lecture Hours

3

Lab Hours

2

Course Learning Outcomes

  • The student will be able to explain the components of a typical operating system and how they interact with each other.
  • The student will be able to understand programs written in the C programming language and will be able to write basic C programs.
  • The student will understand basic inter-process communication mechanisms.
  • The student will be able to describe in detail the action and relative merits of the various methods used for process scheduling.
  • The student will be able to determine the allocation of processor memory when various allocation schemes are used, both with and without the use of virtual memory.
  • The student will understand the file structures of typical operating systems.
  • The student will be able to bound I/O transaction times when given the characteristics of a data block and the I/O device used.
  • The student will be able to describe the operation of common methods used to prevent deadlocks.
  • The student will be able to describe in detail the methods commonly used by operating systems to protect executing processes from each other.
  • The student will be able to describe in detail the methods commonly used by operating systems to protect allocated memory from processors not authorized to access it.
  • The student will be able to describe in detail the methods commonly used by operating systems to protect the operating system processes and the memory used by the operating system from user processes.