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

Ch. 1 Lecture 1 - 2 PDF

This document provides an overview of operating systems and system calls. It defines an operating system as a program that acts as an intermediary between the user and computer hardware. The operating system's goals are to execute programs, make the computer convenient to use, and efficiently manage hardware resources. It also divides a computer system into four components: hardware, operating system, application programs, and users. It then discusses operating system definitions, structure, operations, services, system calls, and parameter passing in system calls.

Uploaded by

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

Ch. 1 Lecture 1 - 2 PDF

This document provides an overview of operating systems and system calls. It defines an operating system as a program that acts as an intermediary between the user and computer hardware. The operating system's goals are to execute programs, make the computer convenient to use, and efficiently manage hardware resources. It also divides a computer system into four components: hardware, operating system, application programs, and users. It then discusses operating system definitions, structure, operations, services, system calls, and parameter passing in system calls.

Uploaded by

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

Chapter 1: Introduction

What is an Operating System?


• A program that acts as an intermediary between a user of a computer
and the computer hardware
• Operating system goals:
• Execute user programs and make solving user problems easier
• Make the computer system convenient to use
• Use the computer hardware in an efficient manner

2
Computer System Structure

• Computer system can be divided into four components:


• Hardware – provides basic computing resources
• CPU, memory, I/O devices
• Operating system
• Controls and coordinates use of hardware among various applications and
users
• Application programs – define the ways in which the system resources are used to
solve the computing problems of the users
• Word processors, compilers, web browsers, database systems, video games
• Users
• People, machines, other computers

3
Four Components of a Computer System

4
Operating System Definition

• OS is a resource allocator
• Manages all resources
• Decides between conflicting requests for efficient and fair
resource use
• OS is a control program
• Controls execution of programs to prevent errors and improper
use of the computer

5
Computer System Organization

• Computer-system operation
• One or more CPUs, device controllers connect through common bus
providing access to shared memory
• Concurrent execution of CPUs and devices competing for memory cycles

6
Computer-System Operation

• I/O devices and the CPU can execute concurrently


• Each device controller is in charge of a particular device type
• Each device controller has a local buffer
• CPU moves data from/to main memory to/from local buffers
• I/O is from the device to local buffer of controller
• Device controller informs CPU that it has finished its operation by causing an
interrupt

7
Operating System Structure
• Multiprogramming (Batch system) needed for efficiency
• Single user cannot keep CPU and I/O devices busy at all times
• Multiprogramming organizes jobs (code and data) so CPU always has one to
execute
• A subset of total jobs in system is kept in memory
• One job selected and run via job scheduling
• When it has to wait (for I/O for example), OS switches to another job

• Timesharing (multitasking) is logical extension in which CPU switches jobs so


frequently that users can interact with each job while it is running, creating
interactive computing
• Response time should be < 1 second
• Each user has at least one program executing in memory process
• If several jobs ready to run at the same time  CPU scheduling
• If processes don’t fit in memory, swapping moves them in and out to run
• Virtual memory allows execution of processes not completely in memory

8
Memory Layout for Multiprogrammed System

9
Operating-System Operations

• Interrupt driven (hardware and software)


• Hardware interrupt by one of the devices
• Software interrupt (exception or trap):
• Software error (e.g., division by zero)
• Request for operating system service
• Other process problems include infinite loop,
processes modifying each other or the
operating system

10
Operating-System Operations (cont.)

• Dual-mode operation allows OS to protect itself and other system


components
• User mode and kernel mode
• Mode bit provided by hardware
• Provides ability to distinguish when system is running user code
or kernel code
• Some instructions designated as privileged, only executable in
kernel mode
• System call changes mode to kernel, return from call resets it to
user
• Increasingly CPUs support multi-mode operations
• i.e. virtual machine manager (VMM) mode for guest VMs

11
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

12
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

13
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

14
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)

15
Example of System Calls

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

16
Example of Standard API

17
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 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)

18
API – System Call – OS Relationship

19
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

20
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

21
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

22
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
• From client to server
• Shared-memory model create and gain access to memory regions
• transfer status information
• attach and detach remote devices

23
Types of System Calls (Cont.)
• Protection
• Control access to resources
• Get and set permissions
• Allow and deny user access

24
Examples of Windows and Unix System Calls

25
Standard C Library Example

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


call

26
Example: MS-DOS

• Single-tasking
• Shell invoked when system
booted
• Simple method to run
program
• No process created
• Single memory space
• Loads program into
memory, overwriting all but
the kernel
• Program exit -> shell
reloaded
At system startup running a program

27
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

28
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

29
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

30
Non Simple Structure -- 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

31
Traditional UNIX System Structure
Beyond simple but not fully layered

32
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

33
Microkernel System Structure
• Moves as much from the kernel into user space
• Mach example of microkernel
• Mac OS X kernel (Darwin) partly based on Mach
• 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

34
Microkernel System Structure

Application File Device user


Program System Driver mode

messages messages

Interprocess memory CPU kernel


Communication managment scheduling mode

microkernel

hardware

35
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 operating system, based on Mac OS X
Core services provides cloud computing,
databases
• kernel

36
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

37
Android ArchitectureApplications

Application Framework

Libraries Android runtime

SQLite openGL Core Libraries

surface media
Dalvik
manager framework
virtual machine
webkit libc

Linux kernel

38

You might also like