Download Introduction

Document related concepts

Acorn MOS wikipedia , lookup

Unix wikipedia , lookup

Mobile operating system wikipedia , lookup

Library (computing) wikipedia , lookup

Batch file wikipedia , lookup

Berkeley Software Distribution wikipedia , lookup

OS 2200 wikipedia , lookup

Windows NT startup process wikipedia , lookup

RSTS/E wikipedia , lookup

Copland (operating system) wikipedia , lookup

Security-focused operating system wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

Distributed operating system wikipedia , lookup

DNIX wikipedia , lookup

Spring (operating system) wikipedia , lookup

ICL VME wikipedia , lookup

Burroughs MCP wikipedia , lookup

Paging wikipedia , lookup

Process management (computing) wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Unix security wikipedia , lookup

Transcript
Chapter 1
Introduction
1.1 What is an operating system
1.2 History of operating systems
1.3 The operating system zoo
1.4 Computer hardware review
1.5 Operating system concepts
1.6 System calls
1.7 Operating system structure
1
Introduction
• A computer system consists of
– hardware
– system programs
– application programs
2
What is an Operating System
• It is an extended machine (interface to the
machine).
– Hides the messy details which must be performed
– Presents user with a virtual machine, easier to use
• It is a resource manager
– Each program gets time with the resource
– Each program gets space on the resource
3
History of Operating Systems (1)
• First generation 1945 - 1955
– vacuum tubes, plug boards
• Second generation 1955 - 1965
– transistors, batch systems
• Third generation 1965 – 1980
– ICs and multiprogramming
• Fourth generation 1980 – present
– personal computers and workstations (Network
operating systems and distributed operating
systems)
4
History of Operating Systems (2)
Early batch system
–
–
–
–
bring cards to 1401
read cards to tape
put tape on 7094 which does computing
put tape on 1401 which prints output
5
History of Operating Systems (3)
• Structure of a typical FMS (FORTRAN Monitor System)
job – 2nd generation
6
History of Operating Systems (4)
• Multiprogramming system
– three jobs in memory – 3rd generation
7
Fourth generation 1980 – Present
• Operating systems for personal computers
–
–
–
–
–
CP/M (Control Program for Microcomputers)
DOS (Disk Operating System)  MS-DOS
GUI (Graphical User Interface)
Windows  Windows 95/98/Me
Windows NT  Windows 2000 Windows
XP
– UNIX:
• X Windows, Motif
• Linux, Gnome, KDE
8
The Operating System Zoo
• Mainframe operating systems
– Example: OS/390, OS/360
• Server operating systems
– Example: UNIX, Windows 2000/XP, Linux
• Multiprocessor operating systems
– Example: Windows XP, Linux, Dynix
• Personal computer operating systems
– Windows 98, 2000, XP, Macintosh, Linux
• Real-time operating systems
– Hard real-time system: the action absolutely must occur at a certain
moment.
– Examples of soft real-time system: VxWorks, QNX
• Embedded operating systems
– PalmOS, Pocket PC for PDA, Windows Mobile, Symbian OS
• Smart card operating systems
– Java Virtual Machine (JVM) on the smart card
9
Computer Hardware Review (1)
Monitor
Bus
• Components of a simple personal computer
10
Computer Hardware Review (CPU)
(a) A three-stage pipeline
(b) A superscalar CPU (integer, floating, boolean)
11
Computer Hardware Review (Memory)
• Typical memory hierarchy
– numbers shown are rough approximations
12
Computer Hardware Review (disk)
Structure of a disk drive
13
Computer Hardware Review (5)
One base-limit pair and two base-limit pairs
14
Computer Hardware Review (I/O)
• I/O can be done is three ways: busy waiting, interrupt,
DMA (Direct Memory Access)
(a)
(b)
(a) Steps in starting an I/O device and getting interrupt
(b) How the CPU is interrupted
15
Computer Hardware Review (Buses)
Structure of a large Pentium system
16
Operating System Concepts (Processes)
• A process is a program in execution.
• The information about a process is stored in an
operating system table called the process table.
• A process called the command interpreter or
shell is used to read commands from a terminal.
• If a process can create one or more other process
(child processes) and these process create child
processes, we can build them in a tree structure.
• In UNIX, there is a parent process for all
processes.
17
Operating System Concepts (Processes)
• A process tree
– A created two child processes, B and C
– B created three child processes, D, E, and F
18
Processes Tree on a UNIX System
19
Operating System Concepts (Processes)
• The communication to cooperate and synchronize
processes is called interprocess communication.
• A signal causes the process to suspend and run a
special signal handling procedure.
• Each person authorized to use a system is assigned
a UID (User IDentification). A process is assigned
a PID (Process IDentification).
• Users can be members of groups, each of which
has a GID (Group IDentification).
• The superuser (root in UNIX) has special
privilege to violate many of the protection rules.
• In UNIX, use the command ‘ps’ to know the
process status.
20
Operating System Concepts (Deadlocks)
• When two or more processes get themselves into
a stalemate situation, they are in deadlock.
(a) A potential deadlock. (b) an actual deadlock.
21
Operating System Concepts (Memory &
Files)
• In virtual memory the operating system keeps part
of the address space in main memory and part on
disk.
• A file system provides users with a nice, clean
abstract model of device-independent files.
• A directory is used to group files together.
• A path name can specify the location of a file.
• A root directory is the top of the directory
hierarchy. In Unix, / is the root directory.
• Each process has a current working directory
(pwd).
22
Operating System Concepts (Files)
File system for a university department
23
Operating System Concepts (Files)
• If a file access is permitted, the system return
small integer called a file descriptor to use in
subsequent operations.
• In UNIX the mounted file system is used to deal
with removable media (mount).
• Two kinds of special files exist in UNIX under the
/dev directory: block special files (disks) and
character special files (printers, modems).
• A pipe is a sort of pseudo file that can be used to
connect two processes (ps –aef | more).
24
Operating System Concepts (Files)
• Before mounting,
– files on floppy are inaccessible
• After mounting floppy on b,
– files on floppy are part of file hierarchy
25
Operating System Concepts (Pipes)
Two processes connected by a pipe
26
Operating System Concepts (Security &
Shell)
• Files in UNIX are protected by a 9-bit binary
protection code.
– The protection code consists of three 3-bit fields, one
for owner, one for group, and one for others.
– Each field has a bit for read, a bit for write, and a bit for
execute. They are known as rwx bits.
• The UNIX command interpreter is called the shell.
• Many shells exist, including sh, csh, ksh, and bash.
• The user can use < and > to redirect the standard
input and output. The ampersand (&) can be put
after a command to start it as a background job.
27
System Calls
• System calls provide the interface between a
running program and the operating system.
– Generally available as assembly-language
instructions.
– Languages defined to replace assembly
language for systems programming allow
system calls to be made directly (e.g., C, C++).
28
Steps in Making a System Call
There are 11 steps in making the system call
read (fd, buffer, nbytes)
29
Types of System Calls
•
•
•
•
Process management
File management
Directory or Device management
Miscellaneous
– Information maintenance
– Communications
• Some POSIX (Portable Operating System
Interface) are listed as follows.
30
Some System Calls For Process Management
31
Some System Calls For File Management
32
Some System Calls For Directory Management
33
Some System Calls For Miscellaneous Tasks
34
System Calls for Process
• Fork creates a duplicate of the original process.
• UNIX examples (Fig4-8.c)
– fork system call creates new process.
– exec system call used after a fork to replace the
process’ memory space with a new program.
– wait system call used to move the parent process off the
ready queue until the termination of the child.
• Exit system call is used when a process is finished
executing.
• Try the ps command.
35
System Calls (Process)
• A stripped down shell:
while (TRUE) {
type_prompt( );
read_command (command, parameters)
/* repeat forever */
/* display prompt */
/* input from terminal */
if (fork() != 0) {
/* Parent code */
waitpid( -1, &status, 0);
} else {
/* Child code */
execve (command, parameters, 0);
}
}
/* fork off child process */
/* wait for child to exit */
/* execute command */
36
Forking Processes
/* fork processes */
main()
{
int i, pid;
for (i=1; i<=3; i++) {
if ((pid = fork()) == 0) {
printf("In child %d. \n", i);
}
}
}
37
Forking Processes
P
I=2
I=1
I=2
I=3
I=3
I=3
I=3
38
System Calls for Process
• Processes in UNIX have their memory
divided up into three segments:
– The text segment (the program code)
– The data segment (the variables) grows
upwards.
– The stack segment (functions) grows
downwards.
39
System Calls (Process)
• Processes have three segments: text, data, stack
40
System Calls (Directory)
link(“/usr/jim/memo”, “/usr/ast/note”);
(a) Two directories before linking
/usr/jim/memo to ast's directory
(b) The same directories after linking
41
System Calls (Device)
mount(“/dev/fd0”, “/mnt”, 0)
(a) File system before the mount
(b) File system after the mount
42
System Calls (Win32)
Some Win32 API calls
43
Operating System Structure
• Monolithic System - "the big mess". All operating
system operations are put into a single file. The
operating system is a collection of procedures,
each of which can call any of the others.
• Layered System - The operating system is
organized as a hierarchy of layers of processes.
– THE operating system
• Virtual Machine - The operating system is a
timesharing system that provides: (a)
multiprogramming and (b) an extended machine.
– MS-DOS virtual mode
– JVM (Java Virtual Machine)
44
Operating System Structure
(Monolithic)
Simple structuring model for a monolithic system
45
Operating System Structure (Layer)
Structure of the THE operating system
46
Operating System Structure
• Exokernels - The only job of the operating system
is to securely allocate the hardware resources. It
can be used to simulate different hardware
infrastructure.
– Transmeta ?
• Client-server Model - The operating system is
collection of servers that provide specific services;
e.g., file server, etc.
• Advantages of client-server model:
– Servers are running in user mode. If they crash, the
system won’t crash.
– Adapt to use in distributed systems.
47
Operating System Structure (Virtual
Machine)
Structure of VM/370 with CMS (Conversational
Monitor System)
48
Operating System Structure (Clientserver)
The client-server model
49
Operating System Structure (ClientServer)
The client-server model in a distributed system
50
Research on Operating Systems
• Most of the papers cited in the research
sections were published
– ACM – http://www.acm.org
– the IEEE Computer Society –
http://www.computer.org
– USENIX – http://www.usenix.org
• Microkernel can be made flexible and
dependable. It is the current trend.
51
Metric Units
• The metric prefixes are typically abbreviated by
their first letters, with the units greater than 1
capitalized.
• m is for milli and µ is for micro.
• For memory, Kilo means 210. For communication,
1-Kbps means 1000 bits per second.
52
Summary: Operating System
Components
• Main operating system components:
– process manager
– memory manager
– file system
53
Summary: Operating System
Components
• A process manager controls the creation,
execution, and deletion of processes. A
process is a program in execution,
consisting of:
–
–
–
–
the executable program,
the program's data and stack,
PC, SP, and other CPU registers,
all other information needed to run the
program.
54
Summary: Operating System
Components
• A process table is a data structure in the operating
system that is used to store information about
processes – register contents and all other
information needed to run the process.
• Try experiments Ex1.c and Ex2.c in programs.
Compile using: cc -o forever Ex1.c
cc -o sleepy Ex2.c
• Execute in the background: forever &
• Print the manual entry for ps: man ps | col -b | lpr
–P1 and check the process status for forever.
• Print the manual entry for kill and kill the forever
process.
55
Summary: Operating System
Components
• For Ex2.c, look at /usr/include/sys/signal.h.
• Note that SIGALRM=14, so we can kill sleepy early by
sending signal 14 to process sleepy: kill -14 <pid> where
<pid> is the process id of sleepy found by executing ps.
• The memory manager manages memory allocation and
deallocation.
– Most operating systems support multiprogramming to improve
CPU efficiency. Multiprogramming simply means that several
processes are in memory at the same time.
– The memory manager uses swapping and paging to decide which
processes (or parts of processes) core images to move between
memory and disk.
– The motivation is to allow processes which do not fit in memory to
be executed anyway and to allow multiprogramming.
56
Summary: Operating System
Components
• The file system controls access to files on
external storage devices, such as disks.
Directories are used to organize files.
Security and protection is attained by:
– assigning each user a unique ID, called a user id
(UID),
– assigning owners (users) to processes and files,
and
– using a protection mechanism, such as Access
Control Lists (ACL) or Capabilities, to restrict
access to processes and files.
57