Checking date: 11/12/2019


Course: 2019/2020

Operating Systems
(13878)
Study: Bachelor in Computer Science and Engineering (218)


Coordinating teacher: CARRETERO PEREZ, JESUS

Department assigned to the subject: Department of Computer Science and Engineering

Type: Compulsory
ECTS Credits: 6.0 ECTS

Course:
Semester:




Students are expected to have completed
Programming Computer Structure
Competences and skills that will be acquired and learning results. Further information on this link
The goal of the course is to allow the student knowing the functioning of the operating system as a expanded machine, its services for the system and its components, the major entities (processes, memory, files, etc.), concurrency, and the relations of the operating systems with the sw and hw of the computer. To achieve this goal, the student must acquire the following program outcomes (PO): a, b, c, d, e, f, g, h, i, k. Related to the following competences: 1.- General competences - Analysis and synthesis (PO: b, e, g) - Planning and organization (PO: b, c, h) - Problem solving (PO: a, e, k) - Collaborative work (PO: d) - Capacity to apply theoretical concepts (PO: a, b, c, e, f, i, k) 2.- Specific competences (CECRI5, CECRI10). 2.1.- cognitive (PO: a, b, c, e, f, h, k) - Operating system concepts - Knowing the main features, functionality, and structure of the Operating Systems. - Concurrency concepts - Operating system programming and design of applications based on OS services. - Resource management in operating systems 2.2.- Instrumental (PO: b, c, e, k) - Programming with operating system calls - Programming concurrent applications - Desinning utilities on the operating system - Using tools to monitorize and management of the operating systems 2.3 Attitude (PO: e, g, h, i) - Creativity - Critical vision of the operating systems - Quality aspects and operating systems - Motivation - Interest for finding new solutions with operating systems
Description of contents: programme
Program: T1.- Introduction to Operating Systems     1.1.- Basics. 1.2.- Main features: extended machine, resource manager and user interface 1.3.- History of operating systems     1.4.- Structure and operating system components.     1.5.- Operating System Activation T2 services operating systems.     2.1.- Operating system services. System call.     2.2.- Services associated with the various components of the operating system.     2.3.- System call interface for systems programming.     2.4.- Generation and implementation of programs     2.5.- Static and dynamic libraries P3.- processes and threads 3.1.- Process Definition. 3.2.- Resources, multiprogramming, multitasking and multiprocessing      3.3.- Lifecycle process: state of processes.      3.4 - Services to manage processes.      3.5.- Definition of thread.      3.6.- Threads: library and kernel.      3.7.- Services for operating system threads. 3.8.- Data structures for processes and threads in the kernel 3.9.- Design and implementation of multiprogramming and multitasking in the kernel T4.- Scheduling Processes and threads.      4.1.- Scheduling basics.      4.2.- Scheduling and activation      4.3.- Scheduling algorithms (FIFO, SJF, RR, priority, ...).      4.4.- LINUX scheduling: aging.      4.5.- Process scheduling calls.      4.6.- Scheduler data structures in the kernel ¿ T5 Communication between processes      5.1.- Signals and exceptions.      5.2.- Timers.      5.3.- Process communication with pipes .      5.4.- Local message passing. T6 concurrent processes and synchronization      6.1.- concurrent processes.      6.2.- Mutual exclusion and critical section.      6.3.- Semaphore      6.4.- System Calls for traffic lights.      6.5.- Thread synchronization mechanisms.      6.6.- Mutex and condition variables.      6.7.- System calls to mutex.      6.8.- Cassic concurrency problems.      6.9.- Case study: development of concurrent servers T7 Files and Directories      7.1.- Understand the concepts of file and directory and its characteristics.      7.2.- study the files, their attributes and operations, logical view.      7.3.- Representation from the point of view of users.      7.4.- Services for files.      7.5.- Interpretation of names.      7.6.- Services for directories.      7.7.- volumes, partitions and filesystems. T8 Security and Protection 8.1.- security mechanisms in operating systems.      8.2.- Security in Linux      8.3.- Security in Windows
Learning activities and methodology
- Theory: lectures & exercises 1.5 ECTS. (PO: a, b, e, f, g, h, i, k) * Operating system theoretical concepts related to the program, professional aspects, importance of the subject, critical vision of the operating systems and quality aspects, information acquisition and lifelong learning recognition. * OS problems formulation and resolution. Analysis and synthesis. Applying technical knowledge to solve operating systems problems. * Examples during the lectures to show the students the professional and legal responsibilities due to system failures because of OS, and their economic repercussions. * Examples in the lectures to show the students the impact of choosing an OS solution in the enterprise economic context. * Communication skills are enhanced through reading of materials and written exams. - Projects. 1.5 ECTS. (PO: a, b, c, d, e, g, k) * Several projects are made along the course applying computer systems principles to the field of computer engineering. Partial teacher support. * Projects are developed through a design problem under initial specifications, where the students have to analyze requirements and provide a working solution. * Students are required to use OS tools and provide solutions to real-world problems. Use of professional tools for Linux and Windows OS for solving OS projects. * They develop collaborative work, capacity to apply theoretical concepts, and capacity to make an experiment in time meeting desired needs. * Communication skills are enhanced through writing of memory projects in English and Spanish. - Academic activities with the teacher. Lab experiments. 1 ECTS. (PO: b, d, e, g, k) * Students must design and execute lab experiments with teacher support, such as OS monitoring, system installation, etc. * To extract conclusions, they must also analyze, and interpret data. * Students are required to use OS tools and provide solutions to real-world problems. Use of professional tools for Linux and Windows OS for solving OS projects. * They develop collaborative work, capacity to apply theoretical concepts, and capacity to make an experiment in time meeting desired needs. - Student work. 1.5 ECTS. (PO: a, b, c, d, e, f, g, h, i, k) * Self-study to understand the theoretical concepts and how to apply them to solve operating systems problems. * Homework, individually or cooperatively, to finish the OS projects requested along the course. * Information acquisition and study to know new solutions with operating systems and to recognize the importance of OS in the Computer Engineering field, and the changing world of OS and the need of lifelong learning to be an active professional. - Exams. 0.5 ECTS. (PO: a, b, c, d, e, f, g, h, i, k) * Assessment described below
Assessment System
  • % end-of-term-examination 35
  • % of continuous assessment (assigments, laboratory, practicals...) 65
Basic Bibliography
  • Abraham Silberschatz . Operating System Concepts, 9th edition. Wiley & Sons. 2013
Additional Bibliography
  • A.Silberschatz, P.B. Galvin, G. Gagner. Operating Systems Concepts, Nineth Edition. John Wiley & Sons, Inc..
  • F. García, J. Carretero, A. Calderón, J. Fernández, J. M. Pérez.. Problemas resueltos de programación en C. Thomson, 2003. ISBN: 84-9732-102-2..

The course syllabus and the academic weekly planning may change due academic events or other reasons.


More information: http://arcos.inf.uc3m.es/~ii_ssoo/dokuwiki/doku.php