Upload
shon-franklin
View
221
Download
0
Embed Size (px)
DESCRIPTION
II. MEMORY MANAGEMENT RAM Array of words or bytes, each with its own address Loosely speaking, the only storage device the CPU can address directly (forgetting about cache) Many programs are in memory at the same time O/S Tasks Keep track of which pieces of memory are being used and by whom Decide which processes are to be loaded into memory Allocate/deallocate memory to processes
Citation preview
STRUCTURE
OPERATING SYSTEMS
I. PROCESS MANAGEMENT
• Process• a program in execution
• More than one process can be associated with a single program• Each is a separate execution sequence• All processes can potentially execute concurrently
• O/S Tasks• Creation/deletion of processes• Suspension and resumption of processes• Process synchronization• Interprocess communication• Deadlock detection
II. MEMORY MANAGEMENT
• RAM• Array of words or bytes, each with its own address• Loosely speaking, the only storage device the CPU
can address directly (forgetting about cache)• Many programs are in memory at the same time
• O/S Tasks• Keep track of which pieces of memory are being
used and by whom• Decide which processes are to be loaded into
memory• Allocate/deallocate memory to processes
III. FILE SYSTEM MANAGEMENT (1)
• Provides a uniform logical view of information storage• O/S Tasks• Creation/Deletion of files• Creation/Deletion of directories• Map files onto secondary storage• Backup files onto stable media
III. FILE SYSTEM MANAGEMENT (2)
A file system for a university department.Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
III. FILE SYSTEM MANAGEMENT (3)
To be accessible, files must be mounted(a) before mount. (b) after mount
Tanenbaum & Bo, Modern Operating Systems:4th ed., (c) 2013 Prentice-Hall, Inc. All rights reserved.
IV. PROTECTION
• Ensure that these can only be manipulated by processes with proper authority• Files• Memory• CPU
V. I/O DEVICE MANAGEMENT (1)
A controller is hardware: The electronic component of a device. It has a standard interface (SATA, SCSI, USB, etc.). The controller translates input from software into something a device understands. Controllers can have memory and a processor. NICs and graphic cards are controllers.A Device drivers is software: provides an interface between the controller and the OS.
V. I/O DEVICE MANAGEMENT (2)SUBTLE PROBLEMS
• Problem 1: Getting device driver into kernel• At boot time, OS detects controllers, finds the drivers it
needs and loads them• OS detects controllers and loads drivers on the fly—thumb
drives• Problem 2: OS issues i/o request• Busy/Wait• driver starts i/o and sits in tight loop polling device• i/o completes and driver alerts OS• Problem: wastes CPU cycles
• Interrupt • driver starts the device. Is interrupted when i/o completes• Problem: the interrupt handler is interrupted by another
device• Solution: When processing an interrupt, disable interrupts.
The devices continue to assert interrupt signals, but the CPU does not respond until interrupts are enabled.
VI. COMMAND INTERPRETER
• Programmer interface to the o/s• Shell• Logging on creates a process on your behalf• $ indicates waiting for input• Issue a command (e.g., cp), shell starts a child
process called a system call
VII. SYSTEM CALLS (1)
• Provides an interface between a running program and the o/s• To be distinguished from the shell. System calls
occur within a program• Every subsystem of the o/s has its own set of
system calls
VII. SYSTEM CALLS (2)FILE MANAGEMENT EXAMPLE
#include <stdio.h> #include <fcntl.h> #include <sys/stat.h> int main(int argc, char* argv[]) {
int inFile, outFile; int len; char ch; if (argc != 3) {
printf("Usage: copy <f1> <f2>\n"); exit(1);
} inFile = open(argv[1], O_RDONLY); outFile = open(argv[2], O_WRONLY | O_CREAT, S_IRWXU);while ((len = read(inFile, &ch, 1)) > 0) {
write(outFile, &ch, 1);} close(inFile); close(outFile); return 0;
}
VII. SYSTEM CALL (3)PROCESS MANAGEMENT
• Processes are created through other processes• As early as 1963, researchers postulated 3
process creation functions• fork() – create a process• join() – merge two processes• quit() – terminate a process
THERE IS MUCH,MUCH MORE