Podcast
Questions and Answers
What role does the Operating System (OS) primarily serve in a computer system?
What role does the Operating System (OS) primarily serve in a computer system?
- It functions as a direct interface between the user and applications, bypassing the hardware.
- It acts as an intermediary between user programs and the hardware, managing resources. (correct)
- It exclusively manages file storage and retrieval.
- It is primarily responsible for compiling and debugging code.
When an OS acts as a resource manager, how does it handle conflicting requests for hardware access?
When an OS acts as a resource manager, how does it handle conflicting requests for hardware access?
- It decides based on efficiency and fairness considerations. (correct)
- It denies all conflicting requests to prevent system instability.
- It always prioritizes the request that came in first, regardless of the application.
- It grants access to the application that requires the least amount of resources.
Which of the following tasks is NOT a typical function of an operating system?
Which of the following tasks is NOT a typical function of an operating system?
- Managing data and files.
- Running application software.
- Designing new hardware architectures. (correct)
- Controlling hardware components.
What is a key benefit of the 'portability' feature provided by an Operating System?
What is a key benefit of the 'portability' feature provided by an Operating System?
In the context of operating systems, what does 'concurrency' primarily enable for users?
In the context of operating systems, what does 'concurrency' primarily enable for users?
During the progression of operating systems, what functionality was introduced with 'Timesharing'?
During the progression of operating systems, what functionality was introduced with 'Timesharing'?
How does multiprogramming improve CPU utilization?
How does multiprogramming improve CPU utilization?
What is the primary advantage of parallel systems in operating systems?
What is the primary advantage of parallel systems in operating systems?
What is the relevance of 'GPS navigation' in the context of mobile operating systems?
What is the relevance of 'GPS navigation' in the context of mobile operating systems?
What is a key characteristic of real-time operating systems (RTOS)?
What is a key characteristic of real-time operating systems (RTOS)?
What is the primary goal of distributed operating systems?
What is the primary goal of distributed operating systems?
What is the purpose of a Virtual Machine Monitor (VMM)?
What is the purpose of a Virtual Machine Monitor (VMM)?
What is a key advantage of virtualization regarding compatibility?
What is a key advantage of virtualization regarding compatibility?
What is a significant disadvantage of virtualization?
What is a significant disadvantage of virtualization?
Which of the following best describes multitasking?
Which of the following best describes multitasking?
What is the role of system calls in the interaction betwwen a running application and the OS?
What is the role of system calls in the interaction betwwen a running application and the OS?
Which of the following is NOT considered a function of the kernel?
Which of the following is NOT considered a function of the kernel?
Which statement accurately contrasts monolithic kernels with microkernels?
Which statement accurately contrasts monolithic kernels with microkernels?
Which of the following is an example of a microkernel system?
Which of the following is an example of a microkernel system?
What is the role of the bootloader in the boot process?
What is the role of the bootloader in the boot process?
What does the term 'system call' refer to in the context of operating systems?
What does the term 'system call' refer to in the context of operating systems?
What is the main purpose of a 'boot disk'?
What is the main purpose of a 'boot disk'?
Which of these is a type of interface to a computer system?
Which of these is a type of interface to a computer system?
Which description applies to a Graphical User Interface?
Which description applies to a Graphical User Interface?
What activity is 'performance tuning' referring to in OS management?
What activity is 'performance tuning' referring to in OS management?
Why is it said that building an OS is a 'massive software engineering and design problem'?
Why is it said that building an OS is a 'massive software engineering and design problem'?
Which of these terms corresponds to software that allows guest OSes to run?
Which of these terms corresponds to software that allows guest OSes to run?
For mobile operating systems, which of these is true?
For mobile operating systems, which of these is true?
Which of the following is a benefit of an OS?
Which of the following is a benefit of an OS?
What problem did virtual machines solve?
What problem did virtual machines solve?
What is the meaning of 'Host' in the context of virtualization?
What is the meaning of 'Host' in the context of virtualization?
What is the name of the area where the Kernel operates?
What is the name of the area where the Kernel operates?
In Hybrid Kernel architectures, what kind of code might run in Kernel Space?
In Hybrid Kernel architectures, what kind of code might run in Kernel Space?
Which of these refers to code in the Kernel that handles memory management, scheduling, and program loading?
Which of these refers to code in the Kernel that handles memory management, scheduling, and program loading?
What is a result when an OS implements device independence?
What is a result when an OS implements device independence?
Which of the following system services is used for programming-language support?
Which of the following system services is used for programming-language support?
Which of these is a goal of Microkernels?
Which of these is a goal of Microkernels?
Why do system calls provide a level of indirection to the services on an operating system?
Why do system calls provide a level of indirection to the services on an operating system?
Flashcards
Operating System (OS)
Operating System (OS)
Software that sits between user programs and hardware; it manages resources and controls program execution, preventing errors and improper use.
Multiprogramming OS
Multiprogramming OS
An OS that organizes a number of jobs so the CPU always has one to execute, improving CPU utilization.
Throughput
Throughput
The number of programs completed in a period of time.
Parallel System
Parallel System
Signup and view all the flashcards
Mobile OS
Mobile OS
Signup and view all the flashcards
Embedded OS
Embedded OS
Signup and view all the flashcards
Real-time Operating System (RTOS)
Real-time Operating System (RTOS)
Signup and view all the flashcards
Distributed/Cloud based OS
Distributed/Cloud based OS
Signup and view all the flashcards
Virtual OS
Virtual OS
Signup and view all the flashcards
Virtual Machine Monitor/Manager (VMM)
Virtual Machine Monitor/Manager (VMM)
Signup and view all the flashcards
Operating System
Operating System
Signup and view all the flashcards
Kernel
Kernel
Signup and view all the flashcards
Monolithic Kernel
Monolithic Kernel
Signup and view all the flashcards
Microkernel
Microkernel
Signup and view all the flashcards
Hybrid Kernel
Hybrid Kernel
Signup and view all the flashcards
Boot Process
Boot Process
Signup and view all the flashcards
System Calls
System Calls
Signup and view all the flashcards
Performance Tuning
Performance Tuning
Signup and view all the flashcards
Command Line Interface (CLI)
Command Line Interface (CLI)
Signup and view all the flashcards
Graphical User Interface (GUI)
Graphical User Interface (GUI)
Signup and view all the flashcards
Mobile Operating System
Mobile Operating System
Signup and view all the flashcards
Application Programming Interface (API)
Application Programming Interface (API)
Signup and view all the flashcards
Study Notes
-
Operating Systems (66451) is being offered in Autumn 2023 by Dr. Suleiman Abu Kharmeh.
-
The required textbook is "Operating System Concepts, 10th Edition" by Abraham Silberschatz, Peter Galvin, and Greg Gagne.
-
An additional textbook is "Operating systems : internals and design principles" by William Stallings.
-
"Operating Systems: Three Easy Pieces” by Remzi and Andrea Arpaci-Dusseau is another textbook.
-
A free PDF version of "Operating Systems: Three Easy Pieces." is available online.
Why Study Operating Systems?
- To build or modify a real operating system.
- To tune application performance.
- To administer and use a system well.
- Techniques used in an OS can apply to other areas like complex data structures, conflict resolution, concurrency, and resource management.
- To understand the challenge of designing large and complex systems.
- Future decisions regarding operating systems will be based on more secure knowledge.
- To satisfy curiosity about how systems work.
Course Objectives
-
To achieve a fundamental understanding of computer operating systems.
-
This includes from the moment a PC boots up, to managing devices and memory, up to loading complex, threaded applications.
-
To distinguish between the different types of operating systems.
-
To identify various OS components and their functions.
-
Key topics of analysis include processes and threads, concurrency control, memory management, and file systems.
-
Grading is based on a Midterm (30%), HomeWorks/Project (20%), and Final Exam (50%).
Introduction to Operating Systems
- An OS is software between a user program and the hardware.
- The OS manages resources and allocates them.
- The OS is a control program.
- The OS decides between competing requests for hardware access.
- Aims for efficiency and fairness.
- It controls user program execution and prevents errors and improper use.
- Common elements include a GUI, a command line shell, and a text editor, all interfacing with the OS.
- The OS interacts directly with hardware like the mouse, CPU, Memory and keyboard.
OS Fundamentals
-
The OS multiplexes resources between applications.
-
The OS enforces isolation and protection between applications.
-
The OS manages physical resources and expects to have privileged access.
-
There are a variety of OSes including, Linux, BSD, and Windows.
-
An OS is an interface between applications and hardware.
-
It manages resources (CPU, memory, disk accesses) and provides program services.
-
The OS mediates program access to hardware resources, covering sharing and protection.
-
Manages computation (CPU), storage (memory/disk), network communications (TCP/IP, Ethernet), and I/O devices.
Computer System Layers
- Diagram depicts layers from end-user to computer hardware, including applications, utilities, OS, and hardware.
Operating System Functions
- Tasks include controlling hardware, running applications, managing data/files, and providing user services.
- High-level abstractions (files) replace low-level hardware details for programming and portability (across configurations/architectures).
- User benefits include safety (virtual machines with program protection) and efficiency (resource sharing/concurrent execution).
Operating System Progression
-
Linked Library: the OS was a code library linked into programs, offering an API to control resources.
-
Resident Monitor (~1950): a continuously running program initialized other programs, managed memory cleanup.
-
Timesharing (~1960): allowed multiple terminals to use one machine, dividing CPU time equally.
-
Multiprogramming: overlaps I/O of one job with the computing of another, switching between jobs on I/O events.
-
Modern OSes: include multi-tasking, parallel processing, mobile OSes, and real-time systems.
Advantages of Multiprogramming
- Increased CPU utilization and throughput.
- Shorter turnaround time particularly for for short jobs.
- Improved memory and resource utilization because they are in higher demand.
Typical Multiprogramming OS
- Windows (Windows 95 through Windows 11).
- UNIX-based systems like Linux, IBM’s AIX, BSD Unix, and macOS.
- Additionally modern mobile OS are UNX based.
- Recent MS-DOS versions support multitasking.
- Modern OSes with multi-core/multi-threading CPUs might be considered parallel operating systems.
Parallel Systems
- Parallel systems are capable of running multiple threads or processes and allow for quicker execution.
- Disadvantages include divides program into multiple parallel activities and OS primitives must include fast communication among activities.
- Advantages are it increase execution speed and simultaneously runs multiple threads/processes on multiple CPUs.
- Common parallel computers comes in 2 forms SMPs (symmetric multi-processors) with few cores and MPPs (massively parallel processors) with thousands of cores.
Mobile Computing
- Mobile OS manages the hardware and enables smartphone/tablet apps.
- It manages multimedia functions, connectivity (internet, touch screen, Bluetooth,GPS navigation, cameras, speech recognition.
- Most mobile OSes such as iOS and Android are Unix based.
- Most OSes aren't interchangeable between devices which means Apple iOS phone have their own Android OS.
Embedded/Pervasive Computing
- Cheep processors make pervasive computing possible.
- Embedded systems often have constrained hardware resources (slow processors, small memory, limited power, no/small disk).
- Usually have one dedicated application and this is all subject to rapid change.
Real-Time Operating Systems (RTOS)
- The RTOS are for highly portable computing devices.
- RTOS are small to save valuable storage and typically dont use much power, and support long battery life.
- They Have fixed/rigid timing requirements.
- Examples include freeRTOS (Amazon), Raspberry Pi OS, µC/OS (Micrium), Embedded Linux.
Distributed/Cloud Based OS
- Distributed systems facilitate the use of geographically distributed resources e.g workstations on a LAN or servers across the Internet.
- They support communications between programs, including inter-process communication (message passing, shared memory) and networking stacks.
- The goal is access to a diversity of resources.
- These systems share distributed resources (hardware, software) e.g load balancing, authentication and access control Speed is not the main focus.
Virtual OS
- Virtual machines solve the problem of application compatibility when upgrading or switching hardware because apps are bound to a particular OS.
- There are many Operating Systems (OSes), Windows and Linux dominate the market.
- It was pioneered by IBM
- Can Run multiple OSes concurrently on the same hardware
- A heavyweight mechanism for maintaining app compatibility.
Terminology
- Virtual Machine Monitors/Manager (VMM) is used
- VMM is software that allows multiple guest OSes to run concurrent on one physical machine and each guest runs on a virtual machine.
- VMM is sometimes called a hypervisor.
- The Host is the original operating system in which the VMM runs.
- Virtual Box or VMWare Player are examples of VMM software.
VMM Organization and Functions
- VMM maps operations on virtual hardware to physical hardware.
- Multiplexes resources between guest OSes.
- Enforces protection and isolation between guest OSes.
Advantages of Virtualization
- Guests are oblivious because of compatibility and functionality.
- It consolidates by running multiple OSes as guests on one machine.
- A guest OS is the only thing at risk.
- Useful for multiple platforms debugging.
Disadvantages of Virtualization
- Performance is lower because the guest operating system compared has to interact with a installed Operating system
- cost/effort of maintenance of multiple operating system.
Summary of Operating Systems
- An OS is software that manages computer hardware & provides a program environment.
- Modern computer architectures are multiprocessor systems where each CPU has multiple computing cores.
- OSes use multiprogramming to let several jobs be in memory at the same time and allow the CPU to always have a job to execute.
- Multitasking is when CPU scheduling algorithms rapidly switch between processes for fast user response.
- Computing also takes place in mobile and cloud computing environments.
- Operating systems can be traditional, client–server, peer-to-peer, and real-time embedded.
- A computer’s hardware can be abstracted into several environments through virtualization.
- GNU/Linux, FreeBSD, and Solaris are examples of open-source systems.
- There are free and open-source operating systems available for use redistribution, and modification.
OS Structures
- The OS mediates access to hardware resources and programs request services via system calls (traps.)Hardware devices request attention via interrupts.
- It sits between the application program and the hardware
User Apps - Operating System Structure
- User Apps (Firefox, Photoshop and Acrobat) use an Operating System
- The Applications use the User Interfaces; GUI/Touch and CLI
- Those User interfaces make System Calls: through Application Programming Interface (API)
- The core Operating systems tasks are, file, memory, and process management
- There network support and device driver functions
- Low level hardware abstraction.
User Interfaces
- What is seen when use the computer are User Interfaces.
- Ease of use is what is determined.
- The command-line, and and graphical user interfaces are the 2 types used.
Command-Line Interfaces (CLI)
- User must type exact commands at a command prompt.
- One advantage is that one must learn the commands, unlike more user friendly interfaces.
Graphical User Interfaces (GUI)
- Easier to use, with menu-based approach so commands did not need to be memorized.
- The breakthrough in ease of use came with the introduction of graphical user interfaces (GUIs).
- The use of a mouse or other pointing device makes this task easier.
- Personal computers today are usually equipped with user friendly GUIs.
System Calls
- System calls provide an interface to OS services and are often written in C and C++.
- Behind the scenes, the functions that make up an API typically invoke the actual system calls.
- An API is a set of functions available to an application programmer.
- Windows API for Windows systems
- POSIX API for POSIX-based systems (which include virtually all versions of UNIX, Linux, and macOS)
System Services/Utilities/Programs
- System Services/Utilities/Programs Provide Program loading, execution and debugging
- Some of the programs are simply user interfaces to system calls
- Consists of file management, a status, Communications, File modification background services and Programming-language support
- A convenient environment for program development and execution.
OS Structure
- The core of an Operating System consists of additional components such as the kernels.
- Can be broken down into, many components, system programs (privileged and non-privileged)
- e.g. bootstrap code, the init program.
- This requires the OS to design a large, complex program that: performs well, is reliable, extensible and backwards compatible.
Towards a Kernel
- The kernel is loaded through the bootloader.
- The "one program running at all times on the computer”
- The architecture of the kernel should be defined by its desired features.
Kernel Features
- Consisting of
- device management, loading and executing programs
- System calls and APIs
- Protection, fault tolerance, and Security e.g. only authorized users should be able to login.
- e.g., programs do not crash the computer
Montiliithic Kernel
- A Montiliithic Kernel consist of a Memory and Process managers.
- CPU Scheduling and security Policies
- System APIs for device access.
- Device access to file systems
Pros/Cons of Monolithic Kernels
- Single code base aids kernel development.
- Robust APIs exist for application developers and no need to find separate device drivers.
- Fast performance is the result of tight coupling.
- Bugs will crash the the entire kernel is and thus, the machine.
- The entire code base is large and is harted to check.
- Device drivers the responsibility of OS developers.
- UNIX/Linux is traditional example of this class of Kernel.
Microkernel
- Micro Kernal is a Kernel limited to Kernel Code and inter-process communication.
- Everything else happens at a user level.
Microkernels
- The goal is to minimize kernel code and organize the OS as user-level processes, increasing isolation, reliability and customization.
- Examples include Mach (CMU), Chorus (French UNIX-like OS), and OS X (Apple) and First release of Windows NT
Pros/Cons of Microkernels
- There is a less code making it easier to check for correctness because micro Kernels are much smaller.
- Making the the entire service more easily configurable.
- Services may crash.
- Performance is often slow
Hybrid Kernel
- A Kernel is used for low level task.
- And other system call request are given to other APIs.
Kernel and their trade offs
- Microkernels is smaller has lower code base and have few features.
- A Hybrid Kernel is a Kernel thats pretty large code base.
- A Montiliithic Kernels have a larger code base and feature list.
Boot Process
- During the boot process the operating systems loads into RAM, from a bootstrap program called a bootloader.
Boot and Recovery Disks
- A boot disk, contains the operating system files needed to boot your computer without accessing the hard disk
- Such disk may contain: installation, trial CD, drivers and user settings
- Bootable USB drive is most common.
Performance Tuning
- Top and ps are unix commands to monitor performance.
- Windows Task Manager provides similar services.
- The goal is to improve performance by removing bottlenecks.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.