Lec2 Operating System Structures
Lec2 Operating System Structures
Structures
Operating System Concepts – 9th Edition 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, customized
and how they boot
Operating System Concepts – 9th Edition 2.2 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).
4 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.3 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
4 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
4 May occur in the CPU and memory hardware, in I/O devices, in user
program
4 For each type of error, OS should take the appropriate action to ensure
correct and consistent computing
4 Debugging facilities can greatly enhance the user’s and programmer’s
abilities to efficiently use the system
Operating System Concepts – 9th Edition 2.4 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
4 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
4 Protection involves ensuring that all access to system resources is
controlled
4 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.5 Silberschatz, Galvin and Gagne ©2013
A View of Operating System Services
Operating System Concepts – 9th Edition 2.6 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - CLI
Operating System Concepts – 9th Edition 2.7 Silberschatz, Galvin and Gagne ©2013
User Operating System Interface - GUI
Operating System Concepts – 9th Edition 2.8 Silberschatz, Galvin and Gagne ©2013
Touchscreen Interfaces
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 (including virtually all
versions of UNIX, Linux, and Mac OS X), and Java API for
the Java virtual machine (JVM)
Operating System Concepts – 9th Edition 2.10 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.11 Silberschatz, Galvin and Gagne ©2013
API – System Call – OS Relationship
Operating System Concepts – 9th Edition 2.12 Silberschatz, Galvin and Gagne ©2013
System Call Parameter Passing
Operating System Concepts – 9th Edition 2.13 Silberschatz, Galvin and Gagne ©2013
Parameter Passing via Table
Operating System Concepts – 9th Edition 2.14 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
● 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.15 Silberschatz, Galvin and Gagne ©2013
Types of System Calls
● File management
● create file, delete file
● open, close file
● read, write, reposition
● get and set file attributes
● 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.16 Silberschatz, Galvin and Gagne ©2013
Types of System Calls (Cont.)
● Information maintenance
● get time or date, set time or date
● get system data, set system data
● get and set process, file, or device attributes
● Communications
● create, delete communication connection
● send, receive messages if message passing model to host
name or process name
4 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.17 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.18 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation
Operating System Concepts – 9th Edition 2.19 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation (Cont.)
Operating System Concepts – 9th Edition 2.20 Silberschatz, Galvin and Gagne ©2013
Operating System Concepts – 9th Edition 2.21 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.22 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
Operating System Concepts – 9th Edition 2.23 Silberschatz, Galvin and Gagne ©2013
Simple Structure -- MS-DOS
Operating System Concepts – 9th Edition 2.24 Silberschatz, Galvin and Gagne ©2013
Non Simple Structure -- UNIX
Operating System Concepts – 9th Edition 2.25 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX System Structure
Beyond simple but not fully layered
Operating System Concepts – 9th Edition 2.26 Silberschatz, Galvin and Gagne ©2013
Layered Approach
Operating System Concepts – 9th Edition 2.27 Silberschatz, Galvin and Gagne ©2013
Modules
● Many modern operating systems implement loadable 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
● Linux, Solaris, etc
Operating System Concepts – 9th Edition 2.28 Silberschatz, Galvin and Gagne ©2013
Solaris Modular Approach
Operating System Concepts – 9th Edition 2.29 Silberschatz, Galvin and Gagne ©2013
iOS
Operating System Concepts – 9th Edition 2.30 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
4 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.31 Silberschatz, Galvin and Gagne ©2013
Android Architecture
Operating System Concepts – 9th Edition 2.32 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
● Sometimes two-step process where boot block at fixed location
loaded by ROM code, which loads bootstrap loader from disk
● Common bootstrap loader, GRUB, allows selection of kernel from
multiple disks, versions, kernel options
● Kernel loads and system is then running
Operating System Concepts – 9th Edition 2.33 Silberschatz, Galvin and Gagne ©2013
End of Chapter 2
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013