0% found this document useful (0 votes)
14 views

OS Structure

Uploaded by

rashedkh4leel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

OS Structure

Uploaded by

rashedkh4leel
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures

 Operating System Services


 User Operating System Interface
 System Calls
 Types of System Calls
 System Programs
 Operating System Design and Implementation
 Operating System Structure
 Virtual Machines
 Operating System Generation
 System Boot

Operating System Concepts – 7th Edition, Jan 14, 2005 2.2 Silberschatz, Galvin and Gagne ©2005
Objectives

 To describe the services an operating system provides to users,


processes, and other systems
 To discuss the various ways of structuring an operating system
 To explain how operating systems are installed and customized
and how they boot

Operating System Concepts – 7th Edition, Jan 14, 2005 2.3 Silberschatz, Galvin and Gagne ©2005
OS Views

 Designing a new OS is a major task.


 It is important that the goals for the OS are defined before we begin
the design.
 We can see OS from three views:
 A view that focus on the services that the system provide.
 A view that focus on the interface that the OS make available
to its users.
 A view that focus on the OS components and their
interconnections.

Operating System Concepts – 7th Edition, Jan 14, 2005 2.4 Silberschatz, Galvin and Gagne ©2005
Operating System Services
 One set of operating-system services provides functions that are
helpful to the user:
 User interface - Almost all operating systems have a user interface (UI)
 Varies between Command-Line (CLI), Graphics User Interface
(GUI), Batch
» Batch : commands are entered into files, and those files are
executed. (Ex: updating an antivirus using a batch file)
 Program execution - The system must be able to load a program into
memory and to run that program, end execution, either normally or
abnormally (indicating error)
 I/O operations - A running program may require I/O, which may involve
a file or an I/O device.
 File-system manipulation - The file system is of particular interest.
Obviously, programs need to read and write files and directories, create
and delete them, search them, list file Information, permission
management.

Operating System Concepts – 7th Edition, Jan 14, 2005 2.5 Silberschatz, Galvin and Gagne ©2005
Operating System Services (Cont.)
 Another set of OS functions exists not for helping the user but rather for ensuring the
efficient operation of the system itself via resource sharing
 Resource allocation - When multiple users or multiple jobs running concurrently,
resources must be allocated to each of them
 Many types of resources - Some (such as CPU cycles, main memory, and file
storage) may have special allocation code, others (such as I/O devices) may have
general request and release code.
 Accounting - To keep track of which users use how much and what kinds of computer
resources
 Protection and security - The owners of information stored in a multiuser or networked
computer system may want to control use of that information, concurrent processes
should not interfere with each other
 Protection involves ensuring that all access to system resources is controlled
 Security of the system from outsiders requires user authentication, extends to
defending external I/O devices from invalid access attempts
 If a system is to be protected and secure, precautions must be instituted throughout
it.

Operating System Concepts – 7th Edition, Jan 14, 2005 2.6 Silberschatz, Galvin and Gagne ©2005
User Operating System Interface - CLI

 Interacting with the OS takes two major directions : GUI and command line
interface (CLI).
 CLI sometimes called shell, and it allows direct command entry
 Sometimes implemented in kernel, sometimes it is considered and
implemented as a separate program (XP and UNIX did that)
 Sometimes multiple flavors implemented – shells. The UNIX have many
shells which the user can choose from based upon personal preferences.
 The main function of the CLI (shell) is to get and excute the next user
command such as delete, create, list, print, etc….
 Primarily fetches a command from user and executes it

Operating System Concepts – 7th Edition, Jan 14, 2005 2.7 Silberschatz, Galvin and Gagne ©2005
User Operating System Interface - GUI

 User-friendly desktop metaphor interface


 Usually mouse, keyboard, and monitor
 Icons represent files, programs, actions, etc
 Various mouse buttons over objects in the interface cause
various actions (provide information, options, execute function,
open directory (known as a folder)
 Invented at Xerox PARC research facility in the early 1970s.
 Many systems now include both CLI and GUI interfaces
 Microsoft Windows is GUI with CLI “command” shell
 Apple Mac OS X as “Aqua” GUI interface with UNIX kernel
underneath and shells available
 Solaris is CLI with optional GUI interfaces .

Operating System Concepts – 7th Edition, Jan 14, 2005 2.8 Silberschatz, Galvin and Gagne ©2005
System Calls
 Programming interface to the services provided by the OS
 Typically written in a high-level language (C or C++)
 Mostly accessed by programs via a high-level Application Program Interface
(API) rather than direct system call use
 Three most common APIs are Win32 API for Windows, POSIX API for POSIX-
based systems (including virtually all versions of UNIX, Linux, and Mac OS X),
and Java API for the Java virtual machine (JVM)
 Why use APIs rather than system calls? (many many system calls needed for
copying a file to another file, API can reduce this complexity to the user)
 More easier
 Hide details of the OS from user.

(Note that the system-call names used throughout this text are generic)

Operating System Concepts – 7th Edition, Jan 14, 2005 2.9 Silberschatz, Galvin and Gagne ©2005
Example of System Calls

 System call sequence to copy the contents of one file to another


file
 Many system calls are needed

Operating System Concepts – 7th Edition, Jan 14, 2005 2.10 Silberschatz, Galvin and Gagne ©2005
System Call Implementation

 Typically, a number associated with each system call


 System-call interface maintains a table indexed according to
these numbers
 The system call interface invokes intended system call in OS kernel
and returns status of the system call and any return values
 The caller need know nothing about how the system call is
implemented (see slide 14).
 Just needs to obey API and understand what OS will do as a
result call
 Most details of OS interface hidden from programmer by API
 Managed by run-time support library (set of functions built
into libraries included with compiler). (see slide 15)

Operating System Concepts – 7th Edition, Jan 14, 2005 2.11 Silberschatz, Galvin and Gagne ©2005
API – System Call – OS Relationship

This is the API

Operating System Concepts – 7th Edition, Jan 14, 2005 2.12 Silberschatz, Galvin and Gagne ©2005
Standard C Library Example

 C program invoking printf() library call, which calls write() system call

Operating System Concepts – 7th Edition, Jan 14, 2005 2.13 Silberschatz, Galvin and Gagne ©2005
System Call Parameter Passing
 Often, more information is required than simply identity of desired system call
 Exact type and amount of information vary according to OS and call
 Three general methods used to pass parameters to the OS
 Simplest: pass the parameters in registers
 In some cases, may be more parameters than registers
 Parameters stored in a block, or table, in memory, and the address of
block passed as a parameter in a register (see next slide).
 This approach taken by Linux and Solaris
 Parameters placed, or pushed, onto the stack by the program and popped
off the stack by the operating system
 Block and stack methods do not limit the number or length of parameters
being passed while the first simplest method do.

Operating System Concepts – 7th Edition, Jan 14, 2005 2.14 Silberschatz, Galvin and Gagne ©2005
Parameter Passing via Table

Operating System Concepts – 7th Edition, Jan 14, 2005 2.15 Silberschatz, Galvin and Gagne ©2005
Types of System Calls

 Process control (end process, load process, create process, etc..)


 File management (create file, open file, close file, etc….)
 Device management (read from device, release device, get device
attributes, etc….)
 Information maintenance (get system data, get time ordate, set
time or date, get file, etc…)
 Communications (send/ receive message, create/ delete
communication, etc…)

Operating System Concepts – 7th Edition, Jan 14, 2005 2.16 Silberschatz, Galvin and Gagne ©2005
MS-DOS execution

(a) At system startup (b) running a program

Operating System Concepts – 7th Edition, Jan 14, 2005 2.17 Silberschatz, Galvin and Gagne ©2005
OS structure
 Modern OS are large and complex.
 To reduce this complexity we take a common approach which partition the
whole to smaller parts.
 The smaller parts should communicate, each of them have input, output, and
processing capabilities.
 Those parts will form the kernel of the operating system.
 The parts together form a structure.
 Many structures are available:
 Simple structure
 Layered approach
 Microkernel
 Modules

Operating System Concepts – 7th Edition, Jan 14, 2005 2.18 Silberschatz, Galvin and Gagne ©2005
Simple Structure

 MS-DOS – written to provide the most functionality in the least


space (there was a space limitations at that time).
 Not divided into modules
 Although MS-DOS has some structure, its interfaces and levels
of functionality are not well separated

Operating System Concepts – 7th Edition, Jan 14, 2005 2.19 Silberschatz, Galvin and Gagne ©2005
MS-DOS Layer Structure

Operating System Concepts – 7th Edition, Jan 14, 2005 2.20 Silberschatz, Galvin and Gagne ©2005
Layered Approach

 The operating system is divided into a number of layers (levels),


each built on top of lower layers. The bottom layer (layer 0), is the
hardware; the highest (layer N) is the user interface.
 With modularity, layers are selected such that each uses functions
(operations) and services of only lower-level layers

Operating System Concepts – 7th Edition, Jan 14, 2005 2.21 Silberschatz, Galvin and Gagne ©2005
Layered Operating System`

Operating System Concepts – 7th Edition, Jan 14, 2005 2.22 Silberschatz, Galvin and Gagne ©2005
UNIX (it is a layerd approach)

 UNIX – limited by hardware functionality, the original UNIX operating


system had limited structuring. The UNIX OS consists of two
separable parts
 Systems programs
 The kernel
 Consists of everything below the system-call interface and
above the physical hardware
 Provides the file system, CPU scheduling, memory
management, and other operating-system functions; a large
number of functions for one level

Operating System Concepts – 7th Edition, Jan 14, 2005 2.23 Silberschatz, Galvin and Gagne ©2005
UNIX System Structure

Operating System Concepts – 7th Edition, Jan 14, 2005 2.24 Silberschatz, Galvin and Gagne ©2005
Microkernel System Structure
 UNIX kernel is large and difficult to manage, so researchers at Carnegie Mellon
university create an OS called Mach. In this approach they remove all the non
essential components from the kernel (creating a Microkernel) and implement
them as a system and user-level programs.
 Moves as much from the kernel into “user” space (user level programs).
 Communication takes place between user modules using message passing
 Benefits:
 Easier to extend a microkernel (because the new services can be added to
the user level programs (user space) without any changes to the kernel).
 Easier to port the operating system to new architectures (the kernel is small
and the needed changes for the kernel will be minimum changes).
 More reliable (less code is running in kernel mode)
 More secure (because most services are running in the user mode not in the
kernel mode)
 Detriments:
 Performance overhead of user space to kernel space communication.

Operating System Concepts – 7th Edition, Jan 14, 2005 2.25 Silberschatz, Galvin and Gagne ©2005
Mac OS X Structure

The
disadvantage
appears in this
area
(Performance
overhead of
user space to
kernel space
communication.)

Both OS examples use


microkernel approach.

Operating System Concepts – 7th Edition, Jan 14, 2005 2.26 Silberschatz, Galvin and Gagne ©2005
Modules

 Most modern operating systems implement kernel modules


 Uses object-oriented approach
 Each core component is separate
 Each talks to the others over known interfaces
 Each is loadable as needed within the kernel
 Overall, similar to layers but with more flexible

Operating System Concepts – 7th Edition, Jan 14, 2005 2.27 Silberschatz, Galvin and Gagne ©2005
Solaris Modular Approach

Operating System Concepts – 7th Edition, Jan 14, 2005 2.28 Silberschatz, Galvin and Gagne ©2005
Virtual Machines

 A virtual machine takes the layered approach to its logical


conclusion. It treats hardware and the operating system
kernel as though they were all hardware.
 virtual machine create a complete virtual computer that can be
run on several environments (environments that have different
HW and OS).
 The operating system creates the illusion of multiple
processes, each executing on its own processor with its own
(virtual) memory
 This means that we can run more than one VM on the
same computer HW and OS, each VM will have its own
environment ( operating system) but still all the VMs uses
the same HW and OS)…see slide 42

Operating System Concepts – 7th Edition, Jan 14, 2005 2.29 Silberschatz, Galvin and Gagne ©2005
Virtual Machines (Cont.)

 The resources of the physical computer are shared to create the


virtual machines
 CPU scheduling can create the appearance that users have
their own processor Spooling and a file system can provide
virtual card readers and virtual line printers.
 Spooling: saving a number of jobs (for a printer as an
example) in a buffer because the printer can not print all the
jobs at the same time).

Operating System Concepts – 7th Edition, Jan 14, 2005 2.30 Silberschatz, Galvin and Gagne ©2005
End of Chapter 2

You might also like