Operative Systems

Year
3
Academic year
2015-2016
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
Compulsory
Level
1st Cycle Studies

Recommended Prerequisites

Computer Programming; Data Structures and Algorithms; Microprocessors Systems.

Teaching Methods

Theoretical classes of magisterial type with detailed presentation, using audiovisual means, of the concepts, principles, theories, and methodologies, and with the presentation of illustrative and application examples.

Practical laboratory classes, supervised by a professor: in these classes, some time is dedicated to the presentation of topics relevant to the practical handouts and to the laboratory works; And the rest of the time is dedicated to the development of practical handouts and laboratory works which require the application and combination of different concepts.

Learning Outcomes

Acquire knowledge about the internal functioning of operating systems and their modules, including, processes scheduling, memory management, virtual memory, disk scheduling, file systems, and concurrent programming; and basic knowledge about distributed systems. Acquire knowledge about techniques and algorithms related to operating systems. Acquire capacity to write good system code that explores in an optimized manner the functionalities of an operating system.

Acquiring competencies in analysis and synthesis, informatics knowledge concerning the scope of study, autonomous learning, practical application of theoretical knowledge, solving problems, working in group, adaptivity to new situations, planning and managing.

Work Placement(s)

No

Syllabus

Operating systems introductory and support concepts; General notions about computer architecture; Operating systems roles; Processes: description and control; Threads; Concurrency: mutual exclusion, synchronization and communication, deadlocks and starvation; Memory Management; Virtual memory; Scheduling of processes and threads; I/O management and disk scheduling; File management; Security in operating systems; Introduction to distributed operating systems; Examples of operating systems such as Unix and Windows; Systems programming.

Head Lecturer(s)

Rui Alexandre de Matos Araújo

Assessment Methods

Assessment
Midterm exam or mini-tests: 20.0%
Laboratory work or Field work: 30.0%
Exam: 50.0%

Bibliography

• Stallings, W. (2004) – Operating Systems - Internals and Design Principles, 5ed, Prentice-Hall.

• Silberschatz, A., Galvin, P.B., Gagne, G. (2002) – Operating System Concepts, 6ed, John Wiley and Sons.

• Robins, K.A., Robins, S. (2003) – Unix Systems Programming: Communication Concurrency, and Threads, Prentice-Hall.

• Marshall, D.A. (1999) – Programming in C: UNIX System Calls and Subroutines Using C, Cardiff University, UK, Internet.

• Kernighan, B.W., Ritchie, D.M. (1988) – The C Programming Language, 2ed, Prentice-Hall.

• Stevens, W.R. (1991) – UNIX Network Programming, 1ed, Prentice-Hall.

• Hall, B.B. (2007) – Beej's Guide to C Programming, Internet.

• Hall, B.B. (2009) – Beej's Guide to Unix Interprocess Communication, Internet.

• Stevens, W.R., Rago, S.A. (2005) – Advanced Programming in the UNIX Environment, 2ed, Addison-Wesley.

• Rockind, M.J. (2004) – Advanced UNIX Programming, 2ed, Pearson.