Podcast
Questions and Answers
What is the primary role of an operating system?
What is the primary role of an operating system?
Which goal of an operating system focuses on improving user problem-solving?
Which goal of an operating system focuses on improving user problem-solving?
Which statement accurately describes the abstraction provided by an operating system?
Which statement accurately describes the abstraction provided by an operating system?
Which of the following is NOT a goal of an operating system?
Which of the following is NOT a goal of an operating system?
Signup and view all the answers
What aspect does an operating system abstract for application programs?
What aspect does an operating system abstract for application programs?
Signup and view all the answers
What is the primary purpose of an interrupt in computing?
What is the primary purpose of an interrupt in computing?
Signup and view all the answers
How do hardware devices typically send signals to the CPU?
How do hardware devices typically send signals to the CPU?
Signup and view all the answers
When can hardware triggers an interrupt?
When can hardware triggers an interrupt?
Signup and view all the answers
What is classified as a system program?
What is classified as a system program?
Signup and view all the answers
What component is primarily responsible for processing interrupts?
What component is primarily responsible for processing interrupts?
Signup and view all the answers
Which of the following best describes middleware?
Which of the following best describes middleware?
Signup and view all the answers
Which of the following describes an interrupt?
Which of the following describes an interrupt?
Signup and view all the answers
What role does a device driver play in an operating system?
What role does a device driver play in an operating system?
Signup and view all the answers
In a computer system organization, how are CPUs and device controllers connected?
In a computer system organization, how are CPUs and device controllers connected?
Signup and view all the answers
Which statement accurately describes application programs?
Which statement accurately describes application programs?
Signup and view all the answers
What is the primary purpose of the timer in process management?
What is the primary purpose of the timer in process management?
Signup and view all the answers
What occurs when the counter set by the operating system reaches zero?
What occurs when the counter set by the operating system reaches zero?
Signup and view all the answers
What is a characteristic of privileged instructions in kernel mode?
What is a characteristic of privileged instructions in kernel mode?
Signup and view all the answers
What happens during a transition from user mode to kernel mode?
What happens during a transition from user mode to kernel mode?
Signup and view all the answers
What defines a process in the context of operating systems?
What defines a process in the context of operating systems?
Signup and view all the answers
Which of the following services is primarily responsible for file manipulation?
Which of the following services is primarily responsible for file manipulation?
Signup and view all the answers
What type of service allows users to send messages and browse web pages?
What type of service allows users to send messages and browse web pages?
Signup and view all the answers
Which of the following best describes application programs?
Which of the following best describes application programs?
Signup and view all the answers
What is the purpose of system services related to status information?
What is the purpose of system services related to status information?
Signup and view all the answers
Why are application programs considered operating system specific?
Why are application programs considered operating system specific?
Signup and view all the answers
Which of the following is NOT a function of background services?
Which of the following is NOT a function of background services?
Signup and view all the answers
What is included in programming language support services?
What is included in programming language support services?
Signup and view all the answers
What distinguishes absolute loaders from overlay-loaders?
What distinguishes absolute loaders from overlay-loaders?
Signup and view all the answers
What is the primary function of process management in an operating system?
What is the primary function of process management in an operating system?
Signup and view all the answers
In a single-threaded process, how many program counters are present?
In a single-threaded process, how many program counters are present?
Signup and view all the answers
What does effective memory management in an operating system primarily involve?
What does effective memory management in an operating system primarily involve?
Signup and view all the answers
Which layer of storage hierarchy requires explicit movement of data between levels?
Which layer of storage hierarchy requires explicit movement of data between levels?
Signup and view all the answers
What is the purpose of caching in an operating system?
What is the purpose of caching in an operating system?
Signup and view all the answers
What does spooling refer to in the I/O subsystem?
What does spooling refer to in the I/O subsystem?
Signup and view all the answers
Which of the following best describes virtualization?
Which of the following best describes virtualization?
Signup and view all the answers
Which component is involved in managing cache data for efficient storage utilization?
Which component is involved in managing cache data for efficient storage utilization?
Signup and view all the answers
In which situation is cache coherency critical?
In which situation is cache coherency critical?
Signup and view all the answers
What is one of the roles of the file-system management in an OS?
What is one of the roles of the file-system management in an OS?
Signup and view all the answers
Study Notes
Introduction to Operating Systems
- Saudi Electronic University offers an Operating Systems course.
- The course is part of the College of Computing and Informatics.
- The module includes Chapters 1 (Introduction) and 2 (Operating-System Services).
Course Content
- Operating system functions
- Computer system organization, architecture, and operations
- Resource management
- Virtualization
- Computing environments
- Operating-system services
- User and operating-system interface
- System calls and services
Learning Outcomes
- Describe computer system organization and role.
- Define computer system components, including multiprocessor systems.
- Explain user and kernel mode transitions.
- Identify operating system services and system calls.
What is an Operating System?
- An operating system acts as an intermediary between a computer user and the hardware.
- Its objectives include executing user programs and simplifying user problems.
- It provides an abstraction layer for applications, making the hardware more user-friendly and efficient.
Computer System Structure
- Users (people, machines, other computers) interact with application programs.
- Application programs depend on the operating system.
- The operating system manages the computer hardware.
Operating System Definition
- No universally accepted definition of an operating system exists.
- A good approximation is "everything a vendor ships when you order an operating system", but this description varies widely.
- "The one program running at all times on the computer" is the kernel. However, other system programs and application software are part of the operating system, but not the kernel.
Computer System Organization
- A computer system consists of one or more CPUs (central processing units).
- These are connected via device controllers that provide shared memory access.
- Each operating system has device drivers supporting each device controller facilitating communication.
I/O Operations Overview
- I/O operations are requested by a program.
- The device driver loads suitable registers within a device controller.
- The controller determines the action (e.g., reading input).
- Data is transferred from the device to a local buffer and to the controller.
- The controller then notifies the operating system of completion, often through interrupts.
- The driver then handles the result, potentially returning data or a completion status.
Interrupts
- Hardware signals interrupts to the CPU via the system bus, frequently during I/O operations.
- Interrupts are also critical for operating system and hardware interactions.
- Each computer design has its own interrupt mechanism but with common core functions.
- The OS saves CPU state during an interrupt.
- The OS determines which interrupt occurred.
- Separate segments of code handle different types of interrupts.
Computer System Operation
- I/O devices and CPUs operate concurrently.
- Each device controller has a local buffer.
- Device controllers use drivers to handle communication, memory transfers, and I/O from devices.
- A device controller informs the CPU of completion using interrupts.
Common Functions of Interrupts
- Interrupts transfer control to an interrupt service routine usually through an interrupt vector.
- The vector contains the addresses of various interrupt service routines.
- Interrupt architecture saves the address of interrupted instruction, providing a return point.
- A trap (or exception) is a software-generated interrupt cause by an error or a user request.
- An operating system is interrupt-driven.
I/O Structure
- The operating system returns control to the user program only upon I/O completion.
- The CPU idles during I/O waiting.
- At most one I/O request is outstanding at any time to avoid conflicts or contention.
- The operating system returns to user programs without waiting for I/O completion through system calls.
- I/O devices have status tables recording details like type, address, and status.
- The operating system can reference these details to maintain information on I/O devices.
Computer Startup (Booting)
- A bootstrap program loads at power-up or reboot (e.g. from ROM, EPROM) and is known as firmware.
- The program initializes system aspects.
- The bootstrap program loads the operating system kernel and initiates its execution.
Storage Structure
- Main memory (RAM) directly accessible by CPU (volatile).
- Secondary storage (non-volatile) offers large storage capacity.
Storage Structure (Cont.)
- Hard Disk Drives (HDD) use magnetic platters.
- Disk surfaces are logically segmented into tracks and sectors.
- A disk controller manages interactions with the computer.
- Increasingly popular non-volatile memory (NVM) devices (e.g., SSDs) offer speed improvements.
Storage Hierarchy
- Storage systems are organized hierarchically based on speed and cost.
- Information is frequently cached (copied) to faster storage (e.g., memory) for quicker access.
- Device drivers manage I/O communication between controllers and kernel.
- These drivers ensure consistent interface handling.
Storage-Device Hierarchy
- The figure shows a hierarchy ranging from smaller, faster storage (registers, cache) to larger, slower storage (magnetic tapes).
How a Modern Computer Works
- The CPU executes instructions from memory, managing various processes.
- It manages I/O by way of the I/O controller and the device.
Direct Memory Access (DMA)
- DMA allows high-speed I/O devices to communicate with memory without CPU intervention.
- Only one interrupt is generated per block, rather than per byte transferred.
Operating-System Operations
- The bootstrap program loads the OS kernel.
- The kernel loads system daemons.
- Hardware and software interrupts are handled by the kernel.
- Software errors (e.g., division by zero) and other process problems are managed by the kernel.
Multiprogramming (Batch Systems)
- Single-user systems cannot always keep the CPU and I/O devices busy.
- Multiprogramming organizes multiple jobs, keeping the CPU occupied at all times.
- A subset of jobs are kept in memory and scheduled (the CPU switches to a different job when necessary— for example, when waiting for I/O).
Multitasking (Time-Sharing)
- Multitasking extends batch systems, allowing users to interact with active jobs while running.
- Response time, or time to a user input or output, is kept under a second.
- The CPU frequently switches between jobs (often faster).
- Processes are switched in or out of memory/storage (swapping).
- Processes don’t need to be entirely loaded (virtual memory). Memory space is allocated for active jobs in RAM and other parts of the system.
Memory Layout for Multiprogrammed Systems
- The layout shows how memory partitions can have the operating system as well as multiple user jobs allocated.
Dual-Mode Operation
- Dual-mode operation (user mode, kernel mode) helps the OS protect itself and other system components.
- Mode bit (hardware) defines user or kernel mode.
- Only privileged instructions can execute in Kernel mode.
- System calls change mode to kernel and return from call resets it to user mode.
Transition from User to Kernel Mode
- A system call transition (invoking a system call from a program in user mode) into kernel mode is depicted.
Timer
- A timer prevents infinite loops and resources being seized.
- The timer generates interrupts after a specified period, allowing OS to regain control and to terminate programs when necessary.
- Physical clock decrements a counter kept by the OS.
- When it reaches zero, the OS is notified of need to regain control.
Process Management
- A process is a program in execution.
- Processes need resources (CPU, memory, I/O, files).
- Process termination reclaims allocated resources.
- Processes have a program counter, specifying the next instruction or next action to be taken.
- Processes run sequentially.
- Multi-threading has multiple program counters.
- Many processes can run concurrently (multiplexed among CPUs).
Process Management Activities
- The OS creates and deletes user and system processes.
- The OS suspends and resumes processes.
- The OS provides mechanisms for process synchronization.
- The OS provides mechanisms for process communication and deadlock handling.
Memory Management
- Executing a program requires loading its instructions and data into memory.
- Memory management determines what is in memory at any given moment.
- Memory management optimizes CPU utilization and response to users.
- Memory management activities involve keeping track of which parts of memory are being used by whom.
- The OS decides which processes, or portions of processes, and their data are to be moved into or out of memory.
File-System Management
- The OS provides a uniform logical view of information storage.
- The OS abstracts physical device properties to logical storage units (files).
- Each storage medium has a controller device, such as a disk drive or tape drive.
- Varying properties of each medium include speed, capacity and rate of data transfer. Access methodology can vary (sequential, random, etc).
- Files often organized into directories (folders).
- The OS may manage access control for each file.
Caching
- Caching is a crucial principle that operates at various levels (e.g., hardware, OS, software) within a computer system.
- It involves temporarily copying data from slower to faster storage for faster access.
- The cache is checked first; if data is found, it is retrieved from the faster storage (cache).
- Cache management is important for system design and involves considerations of cache size and replacement policies.
Characteristics of Storage Types
- A table showing typical size, technology, access time and bandwidth of different levels of computer storage (from registers, to cache to memory and to permanent storage like disks.
Migration of Data "A" from Disk to Register
- Multitasking environments should care about using the most recent values from storage regardless of hierarchy location.
- For multiprocessor environments, all CPUs need consistent data values stored in cache; appropriate coherency techniques are implemented in hardware.
- Distributed environments are more complex, with several copies of data potentially extant.
I/O Subsystem
- The I/O system hides hardware peculiarities from the user.
- The OS manages I/O, through buffering, caching, and spooling, to efficiently and manage data transfer and utilization.
- Device drivers manage storage devices (e.g., disk, tapes).
- The general driver interfaces is available to developers.
Virtualization
- Use cases for virtualization range from exploring compatibility between OSes to quality-assurance testing.
- Laptops and desktops can run different OSes for compatibility testing or to develop and execute apps.
- Virtualization allows OSes to run in a virtual machine.
- This facilitates compatibility and efficient use of resources.
Virtualization (Cont.)
- Virtualization (e.g., using software like VMware ESX) allows running multiple OSes on a single physical system.
- If the host CPU differs from the guest OS, the emulated approach using interpretation (instead of native code) is the mechanism used.
Computing Environments- Virtualization
- A visual diagram illustrating different levels of computing environments with virtual machines.
- The different levels shows relationships between processes running, programming interfaces, system kernel, virtual machines, and the underlying compute platform (hardware).
Computer-System Architecture
- Most systems use a general-purpose processor, supplemented by other specialized processors.
- Multiprocessor (parallel) systems are increasingly common, offering increased performance, throughput, and reliability (graceful degradation)
Symmetric Multiprocessing Architecture
- A graphic illustrating how processors work together to support multiprocessing (shared memory access across the different CPUs)
Dual-Core Design
- A diagram illustrating how dual-core computer processing units, or CPUs, work together.
Computing Environments
- A list of computing environments that are related to operation systems.
Traditional
- Stand-alone general-purpose machines are becoming more common in systems sharing data via network (e.g. through internet).
- Stand-alone machines are becoming networked/interconnected.
Client-Server Computing
- Systems supplanted dumb terminals by smart PCs.
- Many systems operate as servers to manage requests generated by client programs.
- File-server systems provide storage, retrieval of data (files).
- Compute-server systems support client requests for services (e.g., databases).
Cloud Computing
- Cloud computing extends across networks, delivering computing, storage, and applications as services.
- Concepts of virtualization and networked operations are core to cloud computing.
- Many different types of cloud computing models support the logical extension of virtualization (e.g, Amazon EC2).
- Cloud services are often categorized by: deployment method, service level, etc.).
Cloud Computing (Cont.)
- Cloud environments usually include many traditional OSes supplemented by VM managers and cloud management tools.
- Internet connectivity necessitates security measures such as firewalls and load balancers. Load balancing ensures a greater efficiency in handling traffic to the cloud platform.
Free and Open-Source Operating Systems
- GNU/Linux and BSD UNIX (Mac OS X core) are prominent examples.
- These are often preferred because of the source-code availability and absence of licensing fees.
Operating System Services
- The OS provides an environment and set of functions (user interface, program execution, I/O operations, file-system manipulation, communications, error detection, and others) for programs and users.
Operating System Services (Cont.)
- A detailed and comprehensive set of OS system functions and services are provided.
Operating System Services (Cont.)
- A continuation of the details, clarifying and defining functions specific to OS services and the operations that support a networked computer systems environment.
View of Operating System Services
- A visual diagram showing the structure and layout of operating system functions that support overall system functionality (user interface, system calls, services, and hardware).
Bourne Shell Command Interpreter
- A sample session display illustrates a command-interpreter session in a UNIX-like environment.
User Operating System Interface (GUI)
- A GUI provides a user-friendly interface with common elements (mouse, keyboard, monitor).
Touchscreen Interfaces
- Touchscreen interfaces have evolved to provide a range of functionalities for interaction, input, and operation.
System Calls
- System calls are the programming interface between programs and OS services.
- They're often written in higher level languages, and used by program calls to support operations that require access to higher level OS services or functions.
Example Of System Calls
- The sequence for making one or more system calls to copy data from one file to another file.
Example Of Standard API
- The illustration of a standard API is in the form of documentation for the
read
function (a standard system call used across Unix- and Linux-like operating systems. )
System Call Implementation
- OS manages system calls (numbered).
- API (e.g., Win32) hides system call implementation details.
- Run-time libraries support API calls.
System Call Parameter Passing
- Methods used to pass parameters to system calls: registers, blocks in memory, stack.
Parameter Passing via Table
- Illustration of how system calls use a table to pass parameters (instead of registers or stack).
Types of System Calls
- Lists the different types of system calls (e.g., process control, file management, device management).
Types of System Calls (Cont.)
- A further listing of possible, or common types of system calls.
Types of System Calls (Cont.)
- A further listing of possible types of system calls, continuing from previous sections and listing categories like information maintenance, communication, protection, and others.
Examples of Windows and Unix System Calls
- A table contrasting similar system call operations in Windows and Unix-like OSes.
System Services
- System programs provide an environment for program development and execution.
- System services can be categorized into file manipulation, status reporting (e.g. on disk/memory space), program loading, error reporting (for example, through logging), communications , debugging, application programs, and background services.
System Services (Cont.)
- Further detailed illustration of specific categories of functions within system services.
System Services (Cont.)
- A final listing of functions, categories, and elements (operations) supporting system services.
Why Applications Are Operating System Specific
- Compiled code for one operating system is not necessarily runnable on another OS, due to system call differences and specific OS-related file format differences.
- Compiled code needs to be re-compiled for different platforms, including system architecture, to run.
Required Reading
- Suggestions for course readings to supplement the lecture material.
Recommended Reading
- Further recommendations for supplementary readings.
Thank You
- Final message of gratitude.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Test your knowledge of operating system principles with this quiz. Explore the various roles, goals, and functionalities of operating systems, including interrupts, device drivers, and system programs. This quiz is perfect for students learning about computer science and operating system theory.