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

Lecture 3

Uploaded by

Sunny 17
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Lecture 3

Uploaded by

Sunny 17
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Major Concepts of OS

User Operating System Interface - CLI

CLI allows direct command entry


 Sometimes implemented in kernel, sometimes by systems
program
 Sometimes multiple flavors implemented – shells
 Primarily fetches a command from user and executes it
– Sometimes commands built-in, sometimes just names of
programs
» If the latter, adding new features doesn’t require shell
modification

Operating System Concepts 2.2 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
 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 (Java Desktop)

Operating System Concepts 2.3 Silberschatz, Galvin and Gagne ©2005


Operating System Design and Implementation

 Design and Implementation of OS not “solvable”, but some


approaches have proven successful
 Internal structure of different Operating Systems can vary widely
 Start by defining goals and specifications
 Affected by choice of hardware, type of system
 User goals and System goals
 User goals – operating system should be convenient to use,
easy to learn, reliable, safe, and fast
 System goals – operating system should be easy to design,
implement, and maintain, as well as flexible, reliable, error-free,
and efficient

Operating System Concepts 2.4 Silberschatz, Galvin and Gagne ©2005


Operating System Design and Implementation (Cont.)

 Important principle to separate


Policy: What will be done?
Mechanism: How to do it?
 Mechanisms determine how to do something, policies decide what
will be done
 The separation of policy from mechanism is a very important
principle, it allows maximum flexibility if policy decisions are to
be changed later

Operating System Concepts 2.5 Silberschatz, Galvin and Gagne ©2005


MS-DOS Simple Structure

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


space
 Not divided into modules
 Although MS-DOS has some structure, its interfaces and levels
of functionality are not well separated

Operating System Concepts 2.6 Silberschatz, Galvin and Gagne ©2005


MS-DOS Layer Structure

Operating System Concepts 2.7 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 2.8 Silberschatz, Galvin and Gagne ©2005


Layered Operating System

Operating System Concepts 2.9 Silberschatz, Galvin and Gagne ©2005


UNIX

 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 2.10 Silberschatz, Galvin and Gagne ©2005


UNIX System Structure

Operating System Concepts 2.11 Silberschatz, Galvin and Gagne ©2005


Microkernel System Structure

 Moves as much from the kernel into “user” space


 Communication takes place between user modules using message
passing
 Benefits:
 Easier to extend a microkernel
 Easier to port the operating system to new architectures
 More reliable (less code is running in kernel mode)
 More secure
 Disadvantages:
 Performance overhead of user space to kernel space
communication

Operating System Concepts 2.12 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 2.13 Silberschatz, Galvin and Gagne ©2005


Solaris Modular Approach

Operating System Concepts 2.14 Silberschatz, Galvin and Gagne ©2005


Operating System Generation

 Operating systems are designed to run on any of a class of


machines; the system must be configured for each specific
computer site
 SYSGEN program obtains information concerning the specific
configuration of the hardware system
 Booting – starting a computer by loading the kernel
 Bootstrap program – code stored in ROM that is able to locate the
kernel, load it into memory, and start its execution

Operating System Concepts 2.15 Silberschatz, Galvin and Gagne ©2005


System Boot

 Operating system must be made available to hardware so


hardware can start it
 Small piece of code – bootstrap loader, locates the kernel,
loads it into memory, and starts it
 Sometimes two-step process where boot block at fixed
location loads bootstrap loader
 When power initialized on system, execution starts at a fixed
memory location
 Firmware used to hold initial boot code

Operating System Concepts 2.16 Silberschatz, Galvin and Gagne ©2005


System Calls
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?

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

Operating System Concepts 2.18 Silberschatz, Galvin and Gagne ©2005


Example of System Calls

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

Operating System Concepts 2.19 Silberschatz, Galvin and Gagne ©2005


Example of Standard API
 Consider the ReadFile() function in the Win32 API—a function for reading
from a file

 A description of the parameters passed to ReadFile()


 HANDLE file—the file to be read
 LPVOID buffer—a buffer where the data will be read into and written
from
 DWORD bytesToRead—the number of bytes to be read into the buffer
 LPDWORD bytesRead—the number of bytes read during the last read
 LPOVERLAPPED ovl—indicates if overlapped I/O is being used

Operating System Concepts 2.20 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
 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)

Operating System Concepts 2.21 Silberschatz, Galvin and Gagne ©2005


API – System Call – OS Relationship

Operating System Concepts 2.22 Silberschatz, Galvin and Gagne ©2005


Standard C Library Example

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

Operating System Concepts 2.23 Silberschatz, Galvin and Gagne ©2005


System Call Parameter Passing

 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 address of block


passed as a parameter in a register

 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

Operating System Concepts 2.24 Silberschatz, Galvin and Gagne ©2005


Types of System Calls

 Process control
 File management
 Device management
 Information maintenance
 Communications

Operating System Concepts 2.25 Silberschatz, Galvin and Gagne ©2005


MS-DOS execution

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

Operating System Concepts 2.26 Silberschatz, Galvin and Gagne ©2005


System Programs

 System programs provide a convenient environment for program


development and execution. The can be divided into:
 File manipulation
 Status information
 File modification
 Programming language support
 Program loading and execution
 Communications
 Application programs
 Most users’ view of the operation system is defined by system
programs, not the actual system calls

Operating System Concepts 2.27 Silberschatz, Galvin and Gagne ©2005


Solaris 10 dtrace Following System Call

Operating System Concepts 2.28 Silberschatz, Galvin and Gagne ©2005


System Programs

 Provide a convenient environment for program development and execution


 Some of them are simply user interfaces to system calls; others are
considerably more complex
 File management - Create, delete, copy, rename, print, dump, list, and
generally manipulate files and directories
 Status information
 Some ask the system for info - date, time, amount of available memory,
disk space, number of users
 Others provide detailed performance, logging, and debugging
information
 Typically, these programs format and print the output to the terminal or
other output devices
 Some systems implement a registry - used to store and retrieve
configuration information

Operating System Concepts 2.29 Silberschatz, Galvin and Gagne ©2005


System Programs (cont’d)

 File modification

Text editors to create and modify files
 Special commands to search contents of files or perform
transformations of the text
 Programming-language support - Compilers, assemblers,
debuggers and interpreters sometimes provided
 Program loading and execution- Absolute loaders, relocatable
loaders, linkage editors, and overlay-loaders, debugging systems
for higher-level and machine language
 Communications - Provide the mechanism for creating virtual
connections among processes, users, and computer systems
 Allow users to send messages to one another’s screens,
browse web pages, send electronic-mail messages, log in
remotely, transfer files from one machine to another

Operating System Concepts 2.30 Silberschatz, Galvin and Gagne ©2005


End of Chapter 2

You might also like