Why Study Operating Systems?

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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?

  • 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?

  • 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?

<p>Allowing applications to be easily transferred between different computer configurations or architectures. (A)</p> Signup and view all the answers

In the context of operating systems, what does 'concurrency' primarily enable for users?

<p>The ability to execute multiple programs seemingly simultaneously. (A)</p> Signup and view all the answers

During the progression of operating systems, what functionality was introduced with 'Timesharing'?

<p>The ability to have multiple terminals using one machine. (B)</p> Signup and view all the answers

How does multiprogramming improve CPU utilization?

<p>By organizing multiple jobs so the CPU always has one to execute. (A)</p> Signup and view all the answers

What is the primary advantage of parallel systems in operating systems?

<p>Increasing the speed of execution through simultaneous threads or processes on multiple CPUs. (D)</p> Signup and view all the answers

What is the relevance of 'GPS navigation' in the context of mobile operating systems?

<p>It is one of the elements managed by the mobile OS, along with others like touch screen and Bluetooth. (C)</p> Signup and view all the answers

What is a key characteristic of real-time operating systems (RTOS)?

<p>They are used in systems with fixed/rigid timing requirements; processing must be done within defined constraints. (D)</p> Signup and view all the answers

What is the primary goal of distributed operating systems?

<p>To facilitate the use of geographically distributed resources. (B)</p> Signup and view all the answers

What is the purpose of a Virtual Machine Monitor (VMM)?

<p>To allow multiple guest OSes to run concurrently on one physical machine. (B)</p> Signup and view all the answers

What is a key advantage of virtualization regarding compatibility?

<p>It ensures guests are unaware of low-level hardware changes. (C)</p> Signup and view all the answers

What is a significant disadvantage of virtualization?

<p>Reduced performance compared to a natively installed OS. (D)</p> Signup and view all the answers

Which of the following best describes multitasking?

<p>Rapidly switching between processes to provide users with a fast response time. (C)</p> Signup and view all the answers

What is the role of system calls in the interaction betwwen a running application and the OS?

<p>Requests for system services by applications. (D)</p> Signup and view all the answers

Which of the following is NOT considered a function of the kernel?

<p>Graphics rendering of application windows (C)</p> Signup and view all the answers

Which statement accurately contrasts monolithic kernels with microkernels?

<p>Monolithic kernels include most OS services in the kernel space, improving speed but risking system-wide failure; microkernels minimize kernel services, enhancing stability but reducing speed. (A)</p> Signup and view all the answers

Which of the following is an example of a microkernel system?

<p>Mach (B)</p> Signup and view all the answers

What is the role of the bootloader in the boot process?

<p>It loads the operating system kernel into RAM. (B)</p> Signup and view all the answers

What does the term 'system call' refer to in the context of operating systems?

<p>An interface through which applications request services from the operating system kernel. (C)</p> Signup and view all the answers

What is the main purpose of a 'boot disk'?

<p>To install or recover an operating system without accessing the primary hard drive. (C)</p> Signup and view all the answers

Which of these is a type of interface to a computer system?

<p>Command Line Interface (CLI) (C)</p> Signup and view all the answers

Which description applies to a Graphical User Interface?

<p>Operating through menu-based options and on-screen icons. (B)</p> Signup and view all the answers

What activity is 'performance tuning' referring to in OS management?

<p>Improving system performance by identifying and removing bottlenecks. (D)</p> Signup and view all the answers

Why is it said that building an OS is a 'massive software engineering and design problem'?

<p>It must maintain reliability, extensibility, backwards compatibility, and performance. (A)</p> Signup and view all the answers

Which of these terms corresponds to software that allows guest OSes to run?

<p>Virtual Machine Monitor (B)</p> Signup and view all the answers

For mobile operating systems, which of these is true?

<p>GPS navigation is managed by mobile operating systems. (D)</p> Signup and view all the answers

Which of the following is a benefit of an OS?

<p>Programming simplicity through high level abstractions. (A)</p> Signup and view all the answers

What problem did virtual machines solve?

<p>Virtual Machines allowed users to avoid needing to change OSs when upgrading or switching hardware. (D)</p> Signup and view all the answers

What is the meaning of 'Host' in the context of virtualization?

<p>The OS that the Virtual Machine software runs in. (B)</p> Signup and view all the answers

What is the name of the area where the Kernel operates?

<p>Kernel Space (D)</p> Signup and view all the answers

In Hybrid Kernel architectures, what kind of code might run in Kernel Space?

<p>Third-party code might runs in Kernel Space. (A)</p> Signup and view all the answers

Which of these refers to code in the Kernel that handles memory management, scheduling, and program loading?

<p>Monolithic Kernel Code (D)</p> Signup and view all the answers

What is a result when an OS implements device independence?

<p>Portability across multiple architectures (A)</p> Signup and view all the answers

Which of the following system services is used for programming-language support?

<p>Programming-language support (A)</p> Signup and view all the answers

Which of these is a goal of Microkernels?

<p>Ease of extension (D)</p> Signup and view all the answers

Why do system calls provide a level of indirection to the services on an operating system?

<p>They hide exact implementation details from an application. (A)</p> Signup and view all the answers

Flashcards

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

An OS that organizes a number of jobs so the CPU always has one to execute, improving CPU utilization.

Throughput

The number of programs completed in a period of time.

Parallel System

An OS that runs multiple threads/processes simultaneously on multiple CPUs.

Signup and view all the flashcards

Mobile OS

An operating system designed for smartphones and tablets, managing hardware, multimedia, and connectivity.

Signup and view all the flashcards

Embedded OS

OS for devices with limited resources, like slow processors and small memory, and is often dedicated to one application.

Signup and view all the flashcards

Real-time Operating System (RTOS)

OS that has fixed or rigid timing requirements; processing must occur within defined timing constraints or the system will fail.

Signup and view all the flashcards

Distributed/Cloud based OS

Operating systems for geographicly distributed resources.

Signup and view all the flashcards

Virtual OS

OS that involves abstracting a computer's hardware into several different execution environments.

Signup and view all the flashcards

Virtual Machine Monitor/Manager (VMM)

Software that allows multiple guest OSes to run concurrently on one physical machine.

Signup and view all the flashcards

Operating System

An interface between applications and hardware; it manages all available resources and provides services to programs.

Signup and view all the flashcards

Kernel

The core of the OS, which is the one program running at all times; it is loaded by the bootloader.

Signup and view all the flashcards

Monolithic Kernel

A type of kernel where all services run within the kernel space.

Signup and view all the flashcards

Microkernel

A kernel that minimizes what goes into kernel space, organizing the rest of the OS as user-level processes.

Signup and view all the flashcards

Hybrid Kernel

A kernel with a structure that is a mix of monolithic and microkernel architectures

Signup and view all the flashcards

Boot Process

The process during which the operating system kernel is loaded into RAM.

Signup and view all the flashcards

System Calls

Software interfaces through which applications request services from the OS.

Signup and view all the flashcards

Performance Tuning

Used to identify issues and improve operating efficiency.

Signup and view all the flashcards

Command Line Interface (CLI)

An interface where exact commands are typed from a prompt.

Signup and view all the flashcards

Graphical User Interface (GUI)

An interface that uses on-screen icons with mouse interaction.

Signup and view all the flashcards

Mobile Operating System

A set of data and programs that manages hardware and allows use of applications.

Signup and view all the flashcards

Application Programming Interface (API)

A software interface that provides a way for services to interact.

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.

Quiz Team

Related Documents

More Like This

Windows System Utilities
30 questions

Windows System Utilities

InvulnerableSunflower avatar
InvulnerableSunflower
Linux系統管理:用戶管理
16 questions
Sistem Operasi dan Linux Kernel
48 questions
Use Quizgecko on...
Browser
Browser