Download 03-os-design

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Burroughs MCP wikipedia , lookup

Berkeley Software Distribution wikipedia , lookup

Plan 9 from Bell Labs wikipedia , lookup

RSTS/E wikipedia , lookup

Copland (operating system) wikipedia , lookup

Mobile operating system wikipedia , lookup

DNIX wikipedia , lookup

VS/9 wikipedia , lookup

CP/M wikipedia , lookup

Spring (operating system) wikipedia , lookup

Unix security wikipedia , lookup

Process management (computing) wikipedia , lookup

Security-focused operating system wikipedia , lookup

Kernel (operating system) wikipedia , lookup

Distributed operating system wikipedia , lookup

Transcript
Operating
Systems
Design
Overview
Operating Systems Design Overview
1/13
Factors in Operating System Design
Operating
Systems
Design
Overview
I
Performance.
I
Protection and Security.
I
Correctness.
I
Maintainability.
I
Commercial factors.
Standards and open systems.
I
I
I
IEEE POSIX.1 open systems standard: specifies a set of
system calls and their semantics that must be supported
by a compliant operating system. (official standard)
TCP/IP: Internet network protocol. Supported by most
operating systems. (de-facto standard)
2/13
Logical Organization of an Operating System
Operating
Systems
Design
Overview
3/13
The Big Picture
Operating
Systems
Design
Overview
Useful Commands
ls, login, passwd,
awk, grep etc
Compilers,
Assembler,
Linker/Loader
IDEs
Shells
Application
Programs
Graphical
User
Interfaces
Operating System
file manager
memory manager
process manager
device manager
Hardware
4/13
Implementation strategies
Operating
Systems
Design
Overview
I
Kernel as the trusted software module
I
Supervisor mode versus user mode (supported by hardware)
I
Requesting system services from the operating system:
system function call versus message-passing to system
processes
5/13
Privilege Levels
Operating
Systems
Design
Overview
The mode bit is used to determine the privilege level by the
hardware. The hardware must support at least two separate
modes.
I
Supervisor mode.
I
I
I
All machine instructions are available.
All memory addresses are available.
User mode.
I
I
A subset of the instructions are available. Typically I/O
instructions, instructions that change the mode bit are not
available. Using those instructions causes the process to
fault and stop.
A subset of the memory addresses are available.
6/13
Kernel
Operating
Systems
Design
Overview
I
The kernel is the trusted part of the operating system. It
runs in the supervisor mode.
I
The trap machine instruction is used to switch from user
mode to the supervisor mode. It is used to implement
system calls. An alternative to trap is using messages to
get service from the operating system.
7/13
Operating
Systems
Design
Overview
8/13
Operating
Systems
Design
Overview
9/13
Operating System Kernel Design Options
Operating
Systems
Design
Overview
I
Monolithic. There is a single large kernel that contains most of
the operating system code. The device drivers can be separate.
I
I
UNIX was conventionally a monolithic design. Linux started as a
monolithic kernel but with the increasing use of modules, the
kernel can be made smaller and less monolithic
Microkernel. The kernel is very small and only implements some
fundamental things like processes and scheduling. The operating
system then consists of several subsystems along with the kernel.
I
MACH operating system is an example of a microkernel design.
MS Windows NT was based on MACH. In turn MS Windows
2000, XP, Vista, 7, 8, and 10 are based on the NT design although
they have moved somewhat away from the microkernel approach
for performance reasons.
For more on the debate of monolithic versus microkernel approach, see
the link on the class website under the Links section titled “Microkernel
versus Monolithic kernel."
10/13
Typical Monolithic Kernel Organization
Operating
Systems
Design
Overview
11/13
Typical Microkernel Organization
Operating
Systems
Design
Overview
12/13
Observing Operating System Behavior
Operating
Systems
Design
Overview
I
For Linux: Use ps, top or KDE System Guard ksysguard for
user level tools. These tools are all based on the /proc
virtual filesystem.
I
The /proc virtual filesystem under Linux provides a window
into the internals of the operating system. For example:
I
I
I
I
/proc/cpuinfo gives us the details of the CPU in the
system.
The file /proc/meminfo gives us the details of the
memory in the system.
The file /proc/stat gives statistics about the system such
as how long the system has been up, number of processes
that have been created since the system was booted up
etc.
The proc filesystem also has a folder for each process that
is running. The folder contains relevant information that
the OS keeps for that process.
See man proc for more details on what all information is
available.
13/13