COURSE INFORMATION
Course Title: OPERATING SYSTEMS
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 318 A 6 3 0 1 4 6
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) NA
Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Dimitrios Karras , Monday 14.30-20.00, Tuesday 13.30-17.00, Thursday 9.00-13.00
Second Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: Blerina Zanaj
Teaching Assistant(s) and Office Hours: NA
Language: English
Compulsory/Elective: Compulsory
Classroom and Meeting Time: as in the time table but also, Monday 14.30-20.00, Tuesday 13.30-17.00, Thursday 9.00-13.00
Course Description: Basic roles of operating systems on computers. Concepts such as multiprogramming, time sharing, process management, threads, interposes communication, concurrency and synchronization, deadlocks, memory management and protection, file systems. Case studies on contemporary operating systems.
Course Objectives: 1) To provide a clear description of the concepts that underlie operating systems based on overview of the fundamental data structures that are prevalent in most operating systems, basic computer organization and high level languages programming. 2) To provide code examples of basic algorithms underlying operating systems, predominantly in C, with some Java, but in such a way that the student could understand the algorithms without a thorough knowledge of these languages. 3) To present the Concepts using intuitive descriptions. to cover Important theoretical results, but omitting formal proofs unless they are absolutely necessary. 4) To analyze and point out to research papers with the original research conducted in these topics 5) To cover all fundamental concepts and algorithms used in both commercial and open-source operating systems. Moreover, to present these concepts and algorithms in a general setting that is not tied to one particular operating system. 6) To present a large number of examples and case studies that pertain to the most popular and the most innovative operating systems, including Linux, MicrosoftWindows, Apple Mac OS X, and Solaris, including examples of both Android and iOS, currently the two dominant mobile operating systems.
COURSE OUTLINE
Week Topics
1 Introduction and Overview
2 Operating-System Structures
3 PROCESS MANAGEMENT, processes, threads
4 Process Synchronization
5 CPU Scheduling, Deadlocks
6 Main Memory Organization
7 Virtual Memory Organization
8 Mass-Storage Structure, File-System Interface
9 File-System Implementation
10 I/O Systems
11 PROTECTION AND SECURITY
12 ADVANCED TOPICS, VIRTUALIZATION, VIRTUAL MACHINES
13 ADVANCED TOPICS, PROMELA LANGUAGE, SPIN MODEL CHECKING FOR PROCESS SYNCHRONIZATION OVERVIEW
14 ADVANCED TOPICS, PROMELA LANGUAGE, SPIN MODEL CHECKING FOR PROCESS SYNCHRONIZATION SMALL APPLICATION
Prerequisite(s): As prerequisites, we assume that the student is familiar with basic data structures, computer organization, and a high-level language, such as C or Java
Textbook: "OPERATING SYSTEM CONCEPTS", ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, GREG GAGNE, NINTH EDITION, WILEY, 2013, ISBN:978-1-118-06333-0 ISBN-BRV:978-1-118-12938-8
Other References: Operating Systems : Internals and Design Principles , W. Stallings, 7th edition, Prentice-Hall, 2012
Laboratory Work: 2 hours/week
Computer Usage:
Others: No
COURSE LEARNING OUTCOMES
1 a clear Understanding of the concepts that underlie operating systems based on overview of the fundamental data structures that are prevalent in most operating systems, basic computer organization and high level languages programming
2 Understanding through code examples of the basic algorithms underlying operating systems, predominantly in C, with some Java, but in such a way that the student could get knowledge of the algorithms without a thorough knowledge of these languages.
3 Learning the Operating Systems Design Concepts using intuitive descriptions, covering Important theoretical results, but omitting formal proofs unless they are absolutely necessary
4 Getting knowledge of the state of the art in research in these topics
5 Understanding clearly all fundamental concepts and algorithms used in both commercial and open-source operating systems, in a general setting that is not tied to one particular operating system
6 To get practical knowledge on major topics, through a large number of examples and case studies that pertain to the most popular and the most innovative operating systems, including Linux, MicrosoftWindows, Apple Mac OS X, and Solaris, including examples of both Android and iOS, currently the two dominant mobile operating systems.
7 Understanding deeper principles in the design of operating systems through the Nachos Prototype Operating System and Promela language of Spin Model Checking for concurrency programming
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Business Informatics (3 years) Program
COURSE EVALUATION METHOD
Method Quantity Percentage
Midterm Exam(s)
1
20
Project
1
15
Lab/Practical Exams(s)
1
25
Final Exam
1
40
Attendance
0
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 4 64
Hours for off-the-classroom study (Pre-study, practice) 16 2 32
Mid-terms 1 3 3
Assignments 3 16 48
Final examination 1 3 3
Other 0
Total Work Load:
150
Total Work Load/25(h):
6
ECTS Credit of the Course:
6