You are on page 1of 23

Chapter 2: Operating-System

Structures

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 Design and Implementation
▪ Operating System Structure
▪ Operating System Debugging
▪ Operating System Generation
▪ System Boot

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:
o User interface - Almost all operating systems have a user
interface (UI).
o Varies between Command-Line (CLI), Graphics User
Interface (GUI), Batch
o 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)
o 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.):
o 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.
o Communications – Processes may exchange information, on the same
computer or between computers over a network
o Communications may be via shared memory or through message
passing (packets moved by the OS)
o Error detection – OS needs to be constantly aware of possible errors
o May occur in the CPU and memory hardware, in I/O devices, in user
program
o For each type of error, OS should take the appropriate action to
ensure correct and consistent computing
o 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
o Resource allocation - When multiple users or multiple jobs running
concurrently, resources must be allocated to each of them
o Many types of resources - CPU cycles, main memory, file storage,
I/O devices.
o Accounting - To keep track of which users use how much and what
kinds of computer resources
o 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
o Protection involves ensuring that all access to system resources is
controlled
o 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


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

Operating System Concepts – 9th Edition 2.8 Silberschatz, Galvin and Gagne ©2013
Bourne Shell Command Interpreter

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

▪ User-friendly desktop metaphor interface


o Usually mouse, keyboard, and monitor
o Icons represent files, programs, actions, etc
o Various mouse buttons over objects in the interface cause
various actions (provide information, options, execute function,
open directory (known as a folder)
o Invented at Xerox PARC
▪ Many systems now include both CLI and GUI interfaces
o Microsoft Windows is GUI with CLI “command” shell
o Apple Mac OS X is “Aqua” GUI interface with UNIX kernel
underneath and shells available
o Unix and Linux have CLI with optional GUI interfaces (CDE,
KDE, GNOME)

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

▪ Touchscreen devices require new


interfaces
o Mouse not possible or not desired
o Actions and selection based on
gestures
o Virtual keyboard for text entry
o Voice commands.

Operating System Concepts – 9th Edition 2.11 Silberschatz, Galvin and Gagne ©2013
The Mac OS X GUI

Operating System Concepts – 9th Edition 2.12 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 (including
virtually all versions of 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.13 Silberschatz, Galvin and Gagne ©2013
Example of System Calls

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

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

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

▪ Typically, a number associated with each system call


o System-call interface maintains a table indexed according to
these numbers
▪ The system call interface invokes the 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
o Just needs to obey API and understand what OS will do as a
result call
o Most details of OS interface hidden from programmer by API
o Managed by run-time support library (set of functions built
into libraries included with compiler)

Operating System Concepts – 9th Edition 2.16 Silberschatz, Galvin and Gagne ©2013
API – System Call – OS Relationship

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

▪ Often, more information is required than simply identity of desired


system call
o Exact type and amount of information vary according to OS
and call
▪ Three general methods used to pass parameters to the OS
o Simplest: pass the parameters in registers
o In some cases, may be more parameters than registers
o 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
o
o Parameters placed, or pushed, onto the stack by the program
and popped off the stack by the operating system
o Block and stack methods do not limit the number or length of
parameters being passed

Operating System Concepts – 9th Edition 2.18 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table

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

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

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

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

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

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

• Protection
o Control access to resources
o Get and set permissions
o Allow and deny user access

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

You might also like