Operative Systems

Year
3
Academic year
2020-2021
Code
01000495
Subject Area
Digital Systems and Computers
Language of Instruction
Portuguese
Other Languages of Instruction
English
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Elective
Level
1st Cycle Studies

Recommended Prerequisites

Computer Programming; Data Structures and Algorithms; Microprocessors Systems.

Teaching Methods

The Theoretical classes (T) will have detailed exposition, using audiovisual media, of the main concepts, principles and theories of Operative Systems, complemented with practical examples that create awareness and interest from the students on the topics at hand and are illustrative real world systems. The Theoretical-Practical (TP) classes will have detailed exposition of the Linux application development environment. Classes will include demonstrations and problem resolution activities. In Practical-Laboratorial (PL) classes, students will develop several group projects

Learning Outcomes

.This unit is a basic Operative Systems (OS) course. An OS should support an environment for the development and execution of programs, an interface for accessing the internal computational system (Programming API) and managing the hardware and software computational resources: Processors, Memory, Peripherals, Information (data and programs) stored in the Filesystem. The goal of this course is to present the students with the understanding of how modern OS work and to enable students to develop system applications that directly use the OS API and that explore the concurrency and multi-program features of the system. This course promotes the acquisition of competences through analysis and synthesis, problem solving, practical application of theoretical knowledge, autonomous learning, oral and written communication, critical thinking and decision making.

Work Placement(s)

No

Syllabus

1. Functions of an Operative System

2. Filesystem

3. Input/Output and disk scheduling

4. Process Management

5. Program Scheduling

6. Memory Management

a. Virtual Memory

b. Memory-Mapped Files

7. Multi-threading

8. Concurrent Programming

   a. Programming in C for Linux; Linux commands; Linux System Functions

   b. Multi-process and Multi-threaded Programming

   c. Inter-process communication

   d. Synchronization

9. Security

10. Virtualization

Head Lecturer(s)

Rui Alexandre de Matos Araújo

Assessment Methods

Assessment
Resolution Problems: 25.0%
Laboratory work or Field work: 35.0%
Exam: 40.0%

Bibliography

Operating System Concepts: 7th Edition, by Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. John Wiley & Sons, ISBN 0471694665.

Unix Systems Programming: Communication, Concurrency and Threads 2nd Edition, by Kay Robbins, Steve Robbins. Prentice Hall, ISBN 0130424110.

Advanced Programming in the UNIX Environment Second Edition, by W. Richard Stevens, Stephen A. Rago. Addison-Wesley