Lecture 3-4 ch2 Operating-System Structures

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Chapter 2: Operating-System

Structures
Lecture 3

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System Structures

➢ Operating System Services


➢ User Operating System Interface
➢ System Calls
➢ Types of System Calls
➢ System Programs

Operating System Concepts – 9th Edition 2.2 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 2.3 Silberschatz, Galvin and Gagne ©2013
Operating System Services
▪ Operating systems provide an environment for execution of
programs and services to programs and users
▪ 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
▪ 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

Operating System Concepts – 9th Edition 2.4 Silberschatz, Galvin and Gagne ©2013
Operating System Services (Cont.)

• One set of operating-system services provides functions that are helpful to


the user (Cont.):
• File-system manipulation - The file system is of particular interest.
Programs need to read and write files and directories, create and delete
them, search them, list file Information, permission management.
• Communications – Processes may exchange information, on the same
computer or between computers over a network
• Communications may be via shared memory or through message
passing (packets moved by the OS)
• Error detection – OS needs to be constantly aware of possible errors
• May occur in the CPU and memory hardware, in I/O devices, in user
program
• For each type of error, OS should take the appropriate action to
ensure correct and consistent computing
• Debugging facilities can greatly enhance the user’s and
programmer’s abilities to efficiently use the system

Operating System Concepts – 9th Edition 2.5 Silberschatz, Galvin and Gagne ©2013
Operating System Services (Cont.)
• Another set of OS functions exists 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 - CPU cycles, main memory, file storage,
I/O devices.
• 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

Operating System Concepts – 9th Edition 2.6 Silberschatz, Galvin and Gagne ©2013
A View of Operating System Services

Operating System Concepts – 9th Edition 2.7 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - CLI

CLI or command interpreter allows direct command entry

Operating System Concepts – 9th Edition 2.8 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - GUI

▪ Many systems now include both CLI and GUI interfaces


▪ Microsoft Windows with CLI “command” shell
▪ Apple Mac OS X is with UNIX kernel underneath and shells
available
▪ Unix and Linux have CLI with optional GUI interfaces (CDE,
KDE, GNOME)

Operating System Concepts – 9th Edition 2.9 Silberschatz, Galvin and Gagne ©2013
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 Programming Interface (API) rather than
direct system call use
▪ Three most common APIs are Win32 API for Windows,
POSIX API for POSIX-based systems (UNIX, Linux, and
Mac OS X), and Java API for the Java virtual machine
(JVM)

Note that the system-call names used throughout this


text are generic

Operating System Concepts – 9th Edition 2.10 Silberschatz, Galvin and Gagne ©2013
Example of Standard API

Operating System Concepts – 9th Edition 2.11 Silberschatz, Galvin and Gagne ©2013
System Call Implementation

▪ 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

Operating System Concepts – 9th Edition 2.12 Silberschatz, Galvin and Gagne ©2013
1
9
/
3
1
6
/ API – System Call – OS Relationship
2
0 nThe interface to the services provided by the
2 OS has two parts:
4 1.Higher language interface – a part of a
system library
•Executes in user mode
•Implemented to accept a standard
procedure call
2.Kernel part
•Executes in system mode
•Implements the required system service
•May cause blocking the caller (forcing it to
wait)
•After completion returns back to Part 1
(may report the success or failure of
the call)

Operating System Concepts – 9th Edition 2.13 Silberschatz, Galvin and Gagne ©2013
System Call Parameter Passing

▪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
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 – 9th Edition 2.14 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table

Operating System Concepts – 9th Edition 2.15 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
1. Process control
• create process, terminate process
• end, abort
• load, execute
• get process attributes, set process attributes
• wait for time
• wait event, signal event
• allocate and free memory
• Dump memory if error
• Debugger for determining bugs, single step execution
• Locks for managing access to shared data between processes

Operating System Concepts – 9th Edition 2.16 Silberschatz, Galvin and Gagne ©2013
Types of System Calls

2. File management
• create file, delete file
• open, close file
• read, write, reposition
• get and set file attributes
3. Device management
▪ request device, release device
▪ read, write, reposition
▪ get device attributes, set device attributes
▪ logically attach or detach devices

Operating System Concepts – 9th Edition 2.17 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)

4. Information maintenance
▪ get time or date, set time or date
▪ get system data, set system data
▪ get and set process, file, or device attributes
5. Communications
▪ create, delete communication connection
▪ send, receive messages if message passing model to host
name or process name
 From client to server
▪ Shared-memory model create and gain access to memory
regions
▪ transfer status information
▪ attach and detach remote devices

Operating System Concepts – 9th Edition 2.18 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)

6. Protection
▪ Control access to resources
▪ Get and set permissions
▪ Allow and deny user access

Operating System Concepts – 9th Edition 2.19 Silberschatz, Galvin and Gagne ©2013
Examples of Windows and Unix System Calls

Operating System Concepts – 9th Edition 2.20 Silberschatz, Galvin and Gagne ©2013
Standard C Library Example

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

Operating System Concepts – 9th Edition 2.21 Silberschatz, Galvin and Gagne ©2013
System Programs
▪ System programs provide a convenient environment for program
development and execution. They can be divided into:
▪ File manipulation
▪ Status information sometimes stored in a File modification
▪ Programming language support
▪ Program loading and execution
▪ Communications
▪ Background services
▪ Application programs
▪ Most users’ view of the operation system is defined by system
programs, not the actual system calls

Operating System Concepts – 9th Edition 2.22 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 2.23 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
▪ 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 – 9th Edition 2.24 Silberschatz, Galvin and Gagne ©2013
System Programs (Cont.)
▪ Background Services
▪ Launch at boot time
▪ Some for system startup, then terminate
▪ Some from system boot to shutdown
▪ Provide facilities like disk checking, process scheduling, error
logging, printing
▪ Run in user context not kernel context
▪ Known as services, subsystems, daemons

▪ Application programs
▪ Don’t pertain to system
▪ Run by users
▪ Not typically considered part of OS
▪ Launched by command line, mouse click, finger poke

Operating System Concepts – 9th Edition 2.25 Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System
Structures
Lecture 4

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 2: Operating-System Structures

▪ Operating System Design and Implementation


▪ Operating System Structure
▪ Operating System Debugging
▪ Operating System Generation
▪ System Boot

Operating System Concepts – 9th Edition 2.27 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation

▪ 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 – 9th Edition 2.28 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation (Cont.)

▪ Important principle to separate


▪ Policy: What will be done?
Mechanism: How to do it?

Operating System Concepts – 9th Edition 2.29 Silberschatz, Galvin and Gagne ©2013
Implementation

▪ Much variation
▪ Early OSes in assembly language
▪ Then system programming languages like Algol, PL/1
▪ Now C, C++
▪ Actually usually a mix of languages
▪ Lowest levels in assembly
▪ Main body in C
▪ Systems programs in C, C++, scripting languages like PERL,
Python, shell scripts
▪ More high-level language easier to port to other hardware
▪ But slower
▪ Emulation can allow an OS to run on non-native hardware

Operating System Concepts – 9th Edition 2.30 Silberschatz, Galvin and Gagne ©2013
Operating System Structure
▪ General-purpose OS is very large program
▪ Various ways to structure ones
▪ Simple structure – MS-DOS
▪ More complex -- UNIX
▪ Layered – an abstrcation
▪ Microkernel -Mach

Operating System Concepts – 9th Edition 2.31 Silberschatz, Galvin and Gagne ©2013
Simple Structure -- MS-DOS

▪ MS-DOS – written to provide the


most functionality in the least
space
▪ Not divided into modules
▪ its interfaces and levels of
functionality are not well
separated

Operating System Concepts – 9th Edition 2.32 Silberschatz, Galvin and Gagne ©2013
Non Simple Structure -- UNIX

▪ 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 – 9th Edition 2.33 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered

Operating System Concepts – 9th Edition 2.34 Silberschatz, Galvin and Gagne ©2013
▪ Layered Approach
▪ Microkernel System Structure
▪ Solaris Modular Approach
▪ Hybrid Systems
▪ Hybrid combines multiple approaches to address performance, security,
usability needs

Operating System Concepts – 9th Edition 2.35 Silberschatz, Galvin and Gagne ©2013
Mac OS X Structure

graphical user interface


Aqua

application environments and services

Java Cocoa Quicktime BSD

kernel environment
BSD

Mach

I/O kit kernel extensions

Operating System Concepts – 9th Edition 2.36 Silberschatz, Galvin and Gagne ©2013
iOS

▪ Apple mobile OS for iPhone, iPad


▪ Structured on Mac OS X, added functionality
▪ Does not run OS X applications natively
▪ Also runs on different CPU architecture
(ARM vs. Intel)
▪ Cocoa Touch Objective-C API for
developing apps
▪ Media services layer for graphics, audio,
video
▪ Core services provides cloud computing,
databases
▪ Core operating system, based on Mac OS X
kernel

Operating System Concepts – 9th Edition 2.37 Silberschatz, Galvin and Gagne ©2013
Android
▪ Developed by Open Handset Alliance (mostly Google)
▪ Open Source
▪ Similar stack to IOS
▪ Based on Linux kernel but modified
▪ Provides process, memory, device-driver management
▪ Adds power management
▪ Runtime environment includes core set of libraries and Dalvik
virtual machine
▪ Apps developed in Java plus Android API
▪ Java class files compiled to Java bytecode then translated
to executable than runs in Dalvik VM
▪ Libraries include frameworks for web browser (webkit), database
(SQLite), multimedia, smaller libc

Operating System Concepts – 9th Edition 2.38 Silberschatz, Galvin and Gagne ©2013
AndroidApplications
Architecture

Application Framework

Libraries Android runtime

SQLite openGL Core Libraries

surface media
Dalvik
manager framework
virtual machine
webkit libc

Linux kernel

Operating System Concepts – 9th Edition 2.39 Silberschatz, Galvin and Gagne ©2013
Performance Tuning

▪ Improve performance by
removing bottlenecks
▪ OS must provide means of
computing and displaying
measures of system
behavior
▪ For example, “top” program
or Windows Task Manager

Operating System Concepts – 9th Edition 2.40 Silberschatz, Galvin and Gagne ©2013
DTrace

▪ DTrace tool in Solaris,


FreeBSD, Mac OS X allows
live instrumentation on
production systems
▪ Probes fire when code is
executed within a provider,
capturing state data and
sending it to consumers of
those probes

▪ Example of following
XEventsQueued system call
move from libc library to
kernel and back

Operating System Concepts – 9th Edition 2.41 Silberschatz, Galvin and Gagne ©2013
Dtrace (Cont.)

▪ DTrace code to record


amount of time each
process with UserID 101 is
in running mode (on CPU)
in nanoseconds

Operating System Concepts – 9th Edition 2.42 Silberschatz, Galvin and Gagne ©2013
System Boot

▪ When power initialized on system, execution starts at a fixed


memory location
▪ Firmware ROM used to hold initial boot code
▪ Operating system must be made available to hardware so hardware
can start it
▪ Small piece of code – bootstrap loader, stored in ROM or
EEPROM locates the kernel, loads it into memory, and starts it
▪ Kernel loads and system is then running

Operating System Concepts – 9th Edition 2.43 Silberschatz, Galvin and Gagne ©2013
End of Chapter 2

Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013

You might also like