Computer architectures and operating systems
1° Year of course - Full year
Frequency Not mandatory
- 9 CFU
- 72 hours
- Italian
- Trieste
- Obbligatoria
- Oral Exam
- SSD INF/01
- Core subjects
Structured into the following modules:
The objectives of the course are to acquire the knowledge of the low-level structure of computers, starting from the level of logic gates. We also want to acquire the knowledge of the basic functioning of operating systems and, in particular, the unix family of systems.
In particular, the student is expected to be able, at the end of the course, to use and understand the operation of a unix-like system and to understand how a program is executed by an computer.
Basics of programming in the C language
The course consists of two main parts focused on computer architecture, the structure of operating systems, and concurrent programming.
Computer architecture. We want to introduce the structure of the computer, starting from the logic gates to build an arithmetic-logic unit (ALU) and a decoding and control system. We will proceed to study the other components of the computer, starting from random access memory. We will continue by moving from machine language to assembly language.
Operating systems. We will start with the basic functionality of modern operating systems, from regulating access to resources to being able to run multiple processes concurrently. We will introduce the basics of the network stack and then we will move on to focus on the family of unix and unix-like operating systems.
The teacher will provide slides and material. The texts listed here are not mandatory and only for additional reference.
Computer Architecture
- John L. Hennessy, David A. Patterson, Computer Organization and
Design: The Hardware / Software Interface, Morgan Kaufmann (multiple editions for different computer architectures)
Operative Systems
- Andrew S. Tanenbaum, Herbert Bos, Modern Operating Systems,
Pearson, 2014
Computer architecture:
- logic gates
- arithmetic-logical unit (ALU) - control unit
- processor architecture
- random access memory - machine language
- assembly language
Operating systems:
- basic operating system functionality
- memory management
- management of multiple processes
- access to resources
- filesystem and mass storage management
- hints of network architecture (network stack, IP protocol) - the Unix operating system
- using the Unix shell
The course will consist of lectures in which the main concepts of the course will be introduced. Alongside the lectures there will be practical exercises in which the various concepts will be applied.
(Architectures) The exam will consist of a written part.
(Operating Systems) The exam consists of a written exam with closed-questions, programming exercises and open questions. To sustain the exam, students must submit all five working labs.
This course delves into topics closely related to one or more goals of the United Nations' 2030 Agenda for Sustainable Development Sustainable Development Goals Code Description 9 Industry, Innovation, and Infrastructure