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

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

The document discusses the different components and services provided by operating systems including system calls, process control, file management, and device management. System calls provide an interface for programs to request services from the operating system like reading/writing files or memory allocation. Process control system calls create and terminate processes while file management calls support creating and accessing files.

Uploaded by

Nishitha R
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)
31 views

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

The document discusses the different components and services provided by operating systems including system calls, process control, file management, and device management. System calls provide an interface for programs to request services from the operating system like reading/writing files or memory allocation. Process control system calls create and terminate processes while file management calls support creating and accessing files.

Uploaded by

Nishitha R
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/ 64

Chapter 2: 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
● System Boot

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

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

● User interface
● Program Execution
● I/O Operations
● File System manipulation
● Communications
● Error detection
● Resource Allocation
● Accounting
● Protection and Security

Operating System Concepts – 9th Edition 2.4 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),
touch-screen, 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/Ooperations - A running program may require I/O, which may involve a file or an I/O
device.
● For efficiency and protection, users cannot control I/O devices directly, rather
OS provides a means to do I/O.

Operating System Concepts – 9th Edition 2.5 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: Programs need to read and write files and
directories. Create and delete file, search for a file, list file information etc,.
• Some programs include permission management to allow or deny access to
files and directories based on file ownership.
• 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 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.
• Logging - 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
User Operating System Interface - CLI

CLI or command interpreter allows direct command entry


● Sometimes implemented in kernel, sometimes by systems program
● Sometimes multiple (command Interpreters) flavors implemented –
shells (Bourne shell, C shell, korn shell etc)
● Primarily fetches a command from user and executes it
● Sometimes commands built-in, sometimes just names of programs
● The main function of command interpreter is to get and execute
the next user-specified command.
● Example: file: create, delete, list, print, copy, execute etc.,

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

● User-friendly desktop metaphor interface (GUI)


● 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)
● Many systems now include both CLI and GUI interfaces
● Microsoft Windows is GUI with CLI “command” shell
● Apple Mac OS X is “Aqua” GUI interface 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.14 Silberschatz, Galvin and Gagne ©2013
Touchscreen Interfaces

▪ Touchscreen devices require new


interfaces
➢ Mouse not possible or not desired
➢ Actions and selection based on
gestures
➢ Virtual keyboard for text entry
▪ Voice commands
System calls
● System calls provide an interface to the services made available by an
operating system.
● Ex: Writing a simple program to read data from one file and copy them to
another file.

Source File Destination File

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

System call sequence to copy the contents of one file to another file
Example of Standard API
System Call Implementation

▪ Typically, a number is associated with each system call


➢ 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
• 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)
API – System Call – OS Relationship
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 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
Parameter Passing via Table
Types of System calls
There are mainly five types of system calls. These are explained in detail as follows −

Operating System Concepts – 9th Edition 2.30 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
Process control
● End , abort
● Load, Execute
● Create process, terminate process
● Wait for time
● Allocate and free memory
● Wait event, signal event
● Get process attributes, set PA

Operating System Concepts – 9th Edition 2.32 Silberschatz, Galvin and Gagne ©2013
File management , Device management
File management

● Create file, Delete file


● Open , close
● Read, write, reposition
● Get file attributes
● Set file attributes

Device management
● Request device , release device
● Read , write , reposition
● Get device attributes
● Set device attributes

Operating System Concepts – 9th Edition 2.34 Silberschatz, Galvin and Gagne ©2013
Information maintenance , communications
▪ 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
• 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.35 Silberschatz, Galvin and Gagne ©2013
▪ Protection
• Control access to resources
• Get and set permissions
• Allow and deny user access
Types of System Calls
Examples of Windows and Unix System Calls
Standard C Library Example
▪ C program invoking printf() library call, which calls write() system call
Example: Arduino
• Single-tasking
• No operating system
• Programs (sketch) loaded via USB
into flash memory
• Single memory space
• Boot loader loads program
• Program exit -> shell reloaded At system startup running a program
Example: FreeBSD

▪ Unix variant
▪ Multitasking
▪ User login -> invoke user’s choice of shell
▪ Shell executes fork() system call to create
process
➢ Executes exec() to load program into
process
➢ Shell waits for process to terminate or
continues with user commands
▪ Process exits with:
➢ code = 0 – no error
➢ code > 0 – error code
System Services/System Programs/Utilities

▪ System programs provide a convenient environment for program


development and execution. They can be divided into:
1. File manipulation
2. Status information sometimes stored in a file
3. Programming language support
4. Program loading and execution
5. Communications
6. Background services
7. Application programs
Most users’ view of the operating system is defined by system programs,
not the actual system calls
System Services (Cont.)
➢ 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
System Services (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 with OS.
• 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
System Services (Cont.)
• Background Services
➢ Launch certain system-programs 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
➢ Constantly running system-program processes are 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
Linkers and Loaders
➢ Source code compiled into object files designed to be loaded into
any physical memory location – relocatable object file
➢ Linker combines these into single binary executable file
▪ Also brings in libraries
➢ Program resides on secondary storage as binary executable, Must
be brought into memory by loader to be executed
▪ Relocation assigns final addresses to program parts and adjusts
code and data in program to match those addresses
➢ Modern general purpose systems don’t link libraries into
executables
▪ Rather, dynamically linked libraries (in Windows, DLLs) are loaded
as needed, shared by all that use the same version of that same
library (loaded once)
➢ Object, executable files have standard formats, so operating
system knows how to load and start them
The Role of the Linker and Loader
System Programs
● System programs provide a convenient environment for program
development and execution.
● Some of them provide user interface to system calls and other are
considerably more complex. They can be divided into these categories
i) File management
ii) Status information
iii) File manipulation
iv) Programming language support
v) Program loading and execution
vi) Communications
vii)Background services
viii)Application programs
Most users’ view of the operating system is defined by system programs,
not the actual system calls

Operating System Concepts – 9th Edition 2.48 Silberschatz, Galvin and Gagne ©2013
Why Applications are Operating System Specific

▪ Apps compiled on one system usually not executable on other operating


systems
▪ Each operating system provides its own unique system calls
➢ Own file formats, etc.
▪ Apps can be multi-operating system
➢ Written in interpreted language like Python, Ruby, and interpreter
available on multiple operating systems
➢ App written in language that includes a VM containing the running app
(like Java)
➢ Use standard language (like C), compile separately on each operating
system to run on each
▪ Application Binary Interface (ABI) is architecture equivalent of API, defines
how different components of binary code can interface for a given operating
system on a given architecture, CPU, etc.
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 the design 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

● Specifying and designing an OS is highly creative task of software


engineering

Operating System Concepts – 9th Edition 2.50 Silberschatz, Galvin and Gagne ©2013
Operating System Design and Implementation (Cont.)

● Important principle: separate policy from mechanism


Policy: What will be done?
Mechanism: How to do it?
● The separation of policy from mechanism is a very important
principle, it allows maximum flexibility if policy decisions are to
be changed later (example – timer)
● Specifying and designing an OS is highly creative task of
software engineering

● Implementation
● Early OS in assembly language
● Now C, C++

Operating System Concepts – 9th Edition 2.51 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.52 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
● Although MS-DOS has some
structure, its interfaces and
levels of functionality are not
well separated

Operating System Concepts – 9th Edition 2.53 Silberschatz, Galvin and Gagne ©2013
Traditional UNIX system structure
• The Linux operating system is based on
UNIX and is structured similarly
• Applications typically use the glibc
standard C library when
communicating with the system call
interface to the kernel.
• The Linux kernel is monolithic in that it
runs entirely in kernel mode in a single
address space.
• But, it does have a modular design that
allows the kernel to be modified during
run time.
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 – 9th Edition 2.57 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
● Moves as much from the kernel into user space
● Mach example of microkernel
● 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
● Detriments:
● Performance overhead of user space to kernel space
communication

Operating System Concepts – 9th Edition 2.58 Silberschatz, Galvin and Gagne ©2013
Microkernel System Structure
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.60 Silberschatz, Galvin and Gagne ©2013
Hybrid Systems

▪ Most modern operating systems are not one pure model


➢ Hybrid combines multiple approaches to address performance,
security, usability needs
➢ Linux and Solaris kernels in kernel address space, so monolithic,
plus modular for dynamic loading of functionality
➢ Windows mostly monolithic, plus microkernel for different
subsystem personalities
▪ Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa programming
environment
➢ Below is kernel consisting of Mach microkernel and BSD Unix parts,
plus I/O kit and dynamically loadable modules (called kernel
extensions)
macOS and iOS Structure
Darwin
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 thnn runs in Dalvik VM
▪ Libraries include frameworks for web browser (webkit), database
(SQLite), multimedia, smaller libc
Android Architecture
Solaris Modular Approach

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

● The fundamental idea behind a virtual machine is to abstract the


hardware of a single computer (the CPU, memory, disk drives,
network interface cards, and so forth) into several different
execution environments, thereby creating the illusion that each
separate execution environment is running its own private
computer.

● By using CPU scheduling and virtual memory technique an


operating system can create the illusion a process has its own
processor with its own memory .

● The virtual machine provides an interface that is identical to the


underlying bare hardware.

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

Operating System Concepts – 9th Edition 2.69 Silberschatz, Galvin and Gagne ©2013
Operating System Generation
● The configuration of the system or system generated for each specific
computer site a process is known as System Generation.
● The system programs reads from a given file or asks the operator of the
system for information about specific configuration of the hardware
systems.
● The following kind of information must be determined
i) What CPU is to be used ?
ii)How much memory is available ?
iii) What devices are available ?
iv) What operating systems options are desired ?

Operating System Concepts – 9th Edition 2.70 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

Operating System Concepts – 9th Edition 2.71 Silberschatz, Galvin and Gagne ©2013
Operating-System Debugging
▪ Debugging is finding and fixing errors, or bugs
▪ Also performance tuning
▪ OS generate log files containing error information
▪ Failure of an application can generate core dump file capturing memory of the
process
▪ Operating system failure can generate crash dump file containing kernel
memory
▪ Beyond crashes, performance tuning can optimize system performance
➢ Sometimes using trace listings of activities, recorded for analysis
➢ Profiling is periodic sampling of instruction pointer to look for statistical
trends
▪ Kernighan’s Law: “Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you are, by
definition, not smart enough to debug it.”
End of Chapter 2

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

You might also like