|
|||||
View general information Description The subject within the syllabus as a whole Prior knowledge Learning objectives and results Content View the UOC learning resources used in the subject Additional information on support tools and learning resources Guidelines on assessment at the UOC View the assessment model | |||||
This is the course plan for the first semester of the academic year 2024/2025. To check whether the course is being run this semester, go to the Virtual Campus section More UOC / The University / Programmes of study section on Campus. Once teaching starts, you'll be able to find it in the classroom. The course plan may be subject to change. | |||||
In this subject, students learn the services and utilities offered by operating systems, as well as about the management of the resources they offer. |
|||||
This course must be achieved after the previous programming subjects of the Bachelor, because it has a strong programming component. | |||||
The established prerequisite for this course is: the programming C language and preferably to know how to perform dynamic memory (pointers) in this environment. | |||||
Specific Bachelor Computer Engineering • Competence to evaluate technological solutions and write project proposals taking into account the available resources, the alternatives and the market conditions. • Competence to analyze a problem at the appropriate level of abstraction and apply the skills and knowledge gained in the degree to solve it. • Competence to identify the structural elements and the working principles of a computer. • Competence to manage the operating systems and the communication infrastructure of a computer network. • Competence to design and build computer applications by using development, integration and reusability techniques. • Competence to propose and evaluate different technological alternatives to solve a particular problem. Subject competences • Learn the services provided by an OS from user, programmer, and system administrator viewpoints. • Learn how to use the various systems for interacting with the OS (commands, scripts, libraries, system calls, etc.) and their implementation. • Learn how to describe the requisites of a file system and the services it should offer. Learn the various implementation methods in current systems (partitions, FAT, i-nodes, NTFS, RAID). • Learn the input/output operations that an OS should provide to programmers. Ability to describe device concepts and needs, and management and implementation of devices (partly dependent and partly independent, device descriptors, etc.). • Learn the concepts of processing, multi-processing, shared time, concurrence, and threads. Learn the problems that can arise from the use of processes and threads, and ways of solving them. Learn to manage processes and threads. Learn how to describe implementation of these concepts on current systems. • Learn about synchronisation and communication mechanisms between processes/threads (such as pipes, named pipes, shared memory, traffic lights, etc.) and how to use them. • Learn how to describe and manage events and exceptions. Implementations. • Learn how to describe the most basic concepts regarding operating systems and computer networks. Learn how to use sockets. Link OS and network concepts. • Learn the memory management mechanisms used by current operating systems in order to describe the concepts underlying paging, virtual memory, memory swapping, etc. • Learn how to describe the basic security and protection problems. Learn the mechanisms for implementing security and protection in current systems. • Learn the basic notions regarding OS performance and optimization techniques. • Use and application of Information and Communication Technologies (ICT) in academic and professional environments. • Ability to adapt to future technologies and environments by updating their professional competences. • Ability to innovate and generate new ideas. Any professional practice related with the bachelor will need the knowledge related to hardware. Therefore, the additional objective of the course is to learn necessary concepts to understand what a computer is taking into account its management through the main components of the operating system and to be able to develop any professional activity using it. |
|||||
The learning units are the following: • Unit 1: Introduction to the Operating Systems (OS) o Section 1. Definitions of OS o Section 2. Historical view of the OS o Section 3. Description of what services an OS must offer • Unit 2: The OS: a virtual machine (VM) o Section 1. Software of the system and virtual machines o Section 2. Input mechanisms to the OS o Section 3. Hardware support o Section 4. Introduction to the scheduling of the processor • Unit 3: Memory management o Section 1. Dynamic translation o Section 2. Virtual memory o Section 3. Programming errors (memory access) • Unit 4: Input/output o Section 1. Input/output concept o Section 2. Input/output devices concept o Section 3. Features of input/output devices o Section 4. Physical, logical and virtual devices o Section 5. Optimization of input/output o Section 6. Some examples • Unit 5: Files system (FS) o Section 1. Definition of FS o Section 2. Directories o Section 3. Protection o Section 4. Some examples of FS and protection • Unit 6: Processes o Section 1. Process life-cycle o Section 2. Basic structures for implementing processes o Section 3. Execution stream o Section 4. Pthreads • Unit 7: Communication and synchronization o Section 1. Need for communication and synchronization o Section 2. Shared resources o Section 3. Not shared memory o Section 4. Deadlock |
|||||
|
|||||
The material of the course will remain available in electronic format. A couple of electronic books and guidelines will lead the course. The student can find the operating system GNU/Linux to install within the Virtual classroom. A link will be available to install GNU/Linux. Guidelines' Shell and calls system can be found in the space of Resources of the Virtual Classroom. The student will have access to an other classroom called OS Laboratories. In this space the student can ask doubts about programming, concret sentences as system calls, difficulties with the Linux environment, and so on. |
|||||
The assessment process is based on students' own work and the assumption that this work is original and has been carried out by them. In assessment activities, the following irregular behaviours, among others, may have serious academic and disciplinary consequences: someone else being involved in carrying out the student's assessment test or activity, or the work being not entirely original; copying another's work or committing plagiarism; attempting to cheat to obtain better academic results; collaborating in, covering up or encouraging copying; or using unauthorized material, software or devices during assessment. If students are caught engaging in any of these irregular behaviours, they may receive a fail mark (D/0) for the assessable activities set out in the course plan (including the final tests) or in the final mark for the course. This could be because they have used unauthorized materials, software or devices (e.g. social networking sites or internet search engines) during the tests, because they have copied text fragments from an external source (internet, notes, books, articles, other student's projects or activities, etc.) without correctly citing the source, or because they have engaged in any other irregular conduct. In accordance with the UOC's academic regulations , irregular conduct during assessment, besides leading to a failing mark for the course, may be grounds for disciplinary proceedings and, where appropriate, the corresponding punishment, as established in the UOC's coexistence regulations. In its assessment process, the UOC reserves the right to:
|
|||||
|