operating systems
DESCRIPTION
Operating Systems. Mehdi Naghavi [email protected] [email protected] Spring 1386. Class outline. Introduction and Overview Operating system structures Processes Scheduling Deadlocks Memory management Input/Output File Systems Security. Operating Systems. Input/Output Systems. - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/2.jpg)
2
Class outline
Introduction and Overview Operating system structures Processes Scheduling Deadlocks Memory management Input/Output File Systems Security
![Page 5: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/5.jpg)
5
Overview
Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Character-oriented terminals Graphical user interfaces Network terminals Power management
![Page 6: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/6.jpg)
6
How fast is I/O hardware?Device Data rate
Keyboard 10 bytes/sec
Mouse 100 bytes/sec
56K modem 7 KB/sec
Printer / scanner 200 KB/sec
USB 1.5 MB/sec
USB 2 60 MB/sec
Fast Ethernet 12.5 MB/sec
Giga Byte Ethernet 125 MB/sec
Hard drive 20 MB/sec
XGA monitor 60 MB/sec
SCSI Ultrawide 4 disk 80 MB/sec
PCI bus 500 MB/sec
![Page 7: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/7.jpg)
7
I/O Hardware
Hard drivecontroller
Videocontroller
Memory
USBcontroller
Networkcontroller
Outsideworld
CPU Computer internals(inside the “box”)
![Page 8: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/8.jpg)
8
A Typical PC Bus Structure
![Page 9: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/9.jpg)
9
Device controllers
I/O devices have components Mechanical component Electronic component
The electronic component is the device controller May be able to handle multiple devices
Controller's tasks Convert serial bit stream to block of bytes Perform error correction as necessary Make available to main memory
![Page 10: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/10.jpg)
10
Memory-Mapped I/O
SeparateI/O & memory
space
0xFFF…
0
Memory
I/O ports
Memory-mapped I/O Hybrid: bothmemory-mapped &
separate spaces
![Page 11: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/11.jpg)
11
How is memory-mapped I/O done?
Single-bus All memory accesses go over
a shared bus I/O and RAM accesses
compete for bandwidth Dual-bus
RAM access over high-speed bus
I/O access over lower-speed bus
Less competition More hardware (more
expensive…)
CPU Memory I/O
CPU Memory I/O
This port allows I/O devicesaccess into memory
![Page 12: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/12.jpg)
12
Device I/O Port Locations on PCs (partial)
![Page 13: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/13.jpg)
13
Intercommunication between I/O devices & CPU
Pooling
Interrupt
![Page 14: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/14.jpg)
14
Polling
Determines state of device command-ready busy Error
Busy-wait cycle to wait for I/O from device
![Page 15: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/15.jpg)
15
Interrupts
CPU Interrupt-request line triggered by I/O device
Interrupt handler receives interrupts
Maskable to ignore or delay some interrupts
Interrupt vector to dispatch interrupt to correct handler Based on priority Some nonmaskable
Interrupt mechanism also used for exceptions
![Page 16: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/16.jpg)
16
Hardware’s view of interrupts
Bus
How interrupts happens. Connections between devices and interrupt controller actually use interrupt lines on the bus rather than dedicated wires
![Page 17: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/17.jpg)
17
Interrupt-Driven I/O Cycle
![Page 18: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/18.jpg)
18
Intel Pentium Processor Event-Vector Table
![Page 19: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/19.jpg)
19
Direct Memory Access Used to avoid programmed I/O for large data
movement
Requires DMA controller
Bypasses CPU to transfer data directly between I/O device and memory
![Page 20: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/20.jpg)
20
Direct Memory Access (DMA) operation
![Page 21: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/21.jpg)
21
Six Step Process to Perform DMA Transfer
![Page 22: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/22.jpg)
Input/Output Systems
Principles of I/O Software
![Page 23: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/23.jpg)
23
I/O software: goals
Device independence Programs can access any I/O device No need to specify device in advance (floppy, hard drive, or CD-ROM)
Uniform naming Name of a file or device is a string or an integer Doesn’t depend on the machine (underlying hardware)
Error handling Done as close to the hardware as possible Isolate higher-level software
Synchronous vs. asynchronous transfers Blocked transfers vs. interrupt-driven
Buffering Data coming off a device cannot be stored in final destination
Sharable vs. dedicated devices disks are sharable tape drives would not be
![Page 24: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/24.jpg)
24
Programmed I/O: printing a page
Steps in printing a string
![Page 25: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/25.jpg)
25
Code for programmed I/O
Writing a string to the printer using programmed I/O
![Page 26: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/26.jpg)
26
Interrupt-driven I/O
copy_from_user (buffer, p, count);j = 0;enable_interrupts();while (*printer_status_reg != READY) ;*printer_data_reg = p[0];scheduler(); // and block user
if (count == 0) { unblock_user();} else { *printer_data_reg = p[j]; count--; j++;}acknowledge_interrupt();return_from_interrupt();
Code run by system call
Code run at interrupt time
Writing a string to the printer using interrupt-driven I/O
Code executed when print system call is made Interrupt service procedure
![Page 27: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/27.jpg)
27
I/O using DMA
copy_from_user (buffer, p, count);set_up_DMA_controller();scheduler(); // and block user
acknowledge_interrupt();unblock_user();return_from_interrupt();
Code run by system call
Code run at interrupt time
Printing a string using DMA code executed when the print system call is made interrupt service procedure
![Page 28: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/28.jpg)
28
I/O Interface
I/O system calls encapsulate device behaviors in generic classes
Device-driver layer hides differences among I/O controllers from kernel
Devices vary in many dimensions Character-stream or block Sequential or random-access Sharable or dedicated Speed of operation read-write, read only, or write only
![Page 29: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/29.jpg)
29
Characteristics of I/O Devices
![Page 30: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/30.jpg)
30
A Kernel I/O Structure
![Page 31: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/31.jpg)
31
Layers of I/O software
User-level I/O software & libraries
Device-independent OS software
Device drivers
Interrupt handlers
Hardware
Operatingsystem(kernel)
User
![Page 32: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/32.jpg)
32
Interrupt handlers
Interrupt handlers are best hidden Driver starts an I/O operation and blocks Interrupt notifies of completion
Interrupt procedure does its task Then unblocks driver that started it Perform minimal actions at interrupt time
Some of the functionality can be done by the driver after it is unblocked
Interrupt handler must Save regs not already saved by interrupt hardware
![Page 33: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/33.jpg)
33
Device drivers
Device drivers go between device controllers and rest of OS
Drivers standardize interface to widely varied devices
Device drivers communicate with controllers over bus
Controllers communicate with devices themselves
Userspace
Kernelspace
Userprogram
Keyboarddriver
Diskdriver
Rest of the OS
Keyboardcontroller
Diskcontroller
Hardware
Devices
Software
![Page 34: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/34.jpg)
34
Device-independent I/O software
Device-independent I/O software provides common “library” routines for I/O software
Helps drivers maintain a standard appearance to the rest of the OS
Uniform interface for many device drivers for Buffering Error reporting Allocating and releasing dedicated devices Suspending and resuming processes
Common resource pool Device-independent block size (keep track of blocks)
![Page 35: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/35.jpg)
35
Why a standard driver interface?
Non-standard driver interfaces Standard driver interfaces
![Page 36: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/36.jpg)
36
Buffering device input
Userspace
Kernelspace
Userspace
Kernelspace
Userspace
Kernelspace
Userspace
Kernelspace
Unbufferedinput
Buffering inuser space
Buffer in kernelCopy to user space
Double bufferin kernel
1
2
1 3
2
![Page 37: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/37.jpg)
37
Anatomy of an I/O request
Layers of the I/O system and the main functions of each layer
![Page 38: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/38.jpg)
38
Disk drive structure
sector
cylinder
platter
spindle
track
head
actuator
surfaces
Data stored on surfaces Up to two surfaces per platter One or more platters per disk
Data in concentric tracks Tracks broken into sectors
256B-1KB per sector Cylinder: corresponding tracks
on all surfaces
Data read and written by heads Actuator moves heads Heads move in unison
![Page 39: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/39.jpg)
39
Disk drive specifics example
IBM 360KB floppy WD 18GB HDCylinders 40 10601Tracks per cylinder 2 12Sectors per track 9 281 (average)Sectors per disk 720 35742000Bytes per sector 512 512Capacity 360 KB 18.3 GBSeek time (minimum) 6 ms 0.8 msSeek time (average) 77 ms 6.9 msRotation time 200 ms 8.33 msSpinup time 250 ms 20 secSector transfer time 22 ms 17 msec
![Page 40: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/40.jpg)
40
Disk “zones”
Outside tracks are longer than inside tracks
Two options Bits are “bigger” More bits (transfer faster)
Modern hard drives use second option
More data on outer tracks Disk divided into “zones”
Constant sectors per track in each zone
8–20 (or more) zones on a disk
![Page 41: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/41.jpg)
41
Disk “addressing”
Millions of sectors on the disk must be labeled Two possibilities
Cylinder/track/sector Sequential numbering
Modern drives use sequential numbers Disks map sequential numbers into specific location Mapping may be modified by the disk
Remap bad sectors Optimize performance
Hide the exact geometry, making life simpler for the OS
![Page 42: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/42.jpg)
42
Disk Structure
Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer.
The 1-dimensional array of logical blocks is mapped into the sectors of the disk sequentially. Sector 0 is the first sector of the first track on the
outermost cylinder. Mapping proceeds in order through that track, then the
rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost.
![Page 43: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/43.jpg)
43
Building a better “disk”
Problem: CPU performance has been increasing exponentially, but disk performance hasn’t Disks are limited by mechanics
Problem: disks aren’t all that reliable Solution: distribute data across disks, and use some
of the space to improve reliability Data transferred in parallel Data stored across drives (striping) Parity on an “extra” drive for reliability
![Page 44: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/44.jpg)
44
RAID Structure
stripe stripeStripe
RAID 0(Redundant Array of Inexpensive Disks
RAID 1(Mirrored copies)
RAID 4 (Striped with parity: any disk failure can be masked, but bottleneck for parity disk)
RAID 5 (Parity rotates through disks: how do you update blocks?)
![Page 45: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/45.jpg)
45
RAID Levels
![Page 46: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/46.jpg)
46
RAID Recovery
X4(i)=X3(i)(+) X2(i)(+) X1(i)(+) X0(i) (+) :exclusive or
X1(i)= X4(i)(+) X3(i)(+) X2(i)(+) X0(i)
![Page 47: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/47.jpg)
47
CD-ROM recording
CD-ROM has data in a spiral
Hard drives have concentric circles of data
One continuous track: just like vinyl records!
Pits & lands “simulated” with heat-sensitive material on CD-Rs and CD-RWs
![Page 48: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/48.jpg)
48
Network-Attached Storage Network-attached storage (NAS) is storage made available over a
network rather than over a local connection (such as a bus) NFS (Network File System, Sun) and CIFS (Common Internet Files Systems, MS Protocol) are
common protocols Implemented via remote procedure calls between host and storage New iSCSI protocol uses IP network to carry the SCSI protocol
![Page 49: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/49.jpg)
49
Storage Area Network Common in large storage environments (and becoming
more common) Multiple hosts attached to multiple storage arrays
flexible
![Page 50: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/50.jpg)
50
Structure of a disk sector
Preamble contains information about the sector Sector number & location information
Data is usually 256, 512, or 1024 bytes ECC (Error Correcting Code) is used to detect & correct
minor errors in the data
Preamble Data ECC
![Page 51: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/51.jpg)
51
Sector interleaving
On older systems, the CPU was slow => time elapsed between reading consecutive sectors
Solution: leave space between consecutively numbered sectors
This isn’t done much these days…
0
12
34
56
7 0
41
52
63
7 0
36
14
72
5
No interleaving Skipping 1 sector Skipping 2 sectors
![Page 52: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/52.jpg)
52
What’s in a disk request?
Time required to read or write a disk block determined by 3 factors Seek time (the time to move disk arm to desired cylinder) Rotational delay (the time for desired sector to rotate under the disk head)
Average delay = 1/2 rotation time Example: rotate in 10ms, average rotation delay = 5ms
Actual transfer time Transfer time = time to rotate over sector Example: rotate in 10ms, 200 sectors/track => 10/200 ms =
0.05ms transfer time per sector Error checking is done by controllers
![Page 53: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/53.jpg)
53
Disk request scheduling
Goal: use disk hardware efficiently Bandwidth as high as possible Disk transferring as often as possible (and not seeking)
We want to Minimize disk seek time (moving from track to track) Minimize rotational latency (waiting for disk to rotate the desired
sector under the read/write head) Calculate disk bandwidth by
Total bytes transferred / time to service request Seek time & rotational latency are overhead (no data is transferred),
and reduce disk bandwidth Minimize seek time & rotational latency by
Using algorithms to find a good sequence for servicing requests Placing blocks of a given file “near” each other
![Page 54: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/54.jpg)
54
Disk scheduling algorithms
Schedule disk requests to minimize disk seek time Seek time increases as distance increases (though not linearly) Minimize seek distance -> minimize seek time
Disk seek algorithm examples assume a request queue & head position (disk has 200 cylinders)
Queue = 100, 175, 51, 133, 8, 140, 73, 77 Head position = 63
100 17551 1338140
7377
read/write head position disk requests(cylinder in which block resides)
Outside edge Inside edge
![Page 55: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/55.jpg)
55
First-Come-First Served (FCFS)
Requests serviced in the order in which they arrived Easy to implement! May involve lots of unnecessary seek distance
Seek order = 100, 175, 51, 133, 8, 140, 73, 77 Seek distance = (100-63) + (175-100) + (175-51) + (133-51) +
(133-8) + (140-8) + (140-73) + (77-73) = 646 cylinders
100175
51133
8140
7377
read/write head start
![Page 56: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/56.jpg)
56
Shortest Seek Time First (SSTF)
Service the request with the shortest seek time from the current head position
Form of SJF scheduling May starve some requests
Seek order = 73, 77, 51, 8, 100, 133, 140, 175 Seek distance = 10 + 4 + 26 + 43 + 92 + 33 + 7 + 35 = 250 cylinders
100
175
51
133
8
140
7377
read/write head start
![Page 57: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/57.jpg)
57
SCAN (elevator algorithm)
Disk arm starts at one end of the disk and moves towards the other end, servicing requests as it goes
Reverses direction when it gets to end of the disk Also known as elevator algorithm
Seek order = 51, 8, 0 , 73, 77, 100, 133, 140, 175 Seek distance = 12 + 43 + 8 + 73 + 4 + 23 + 33 + 7 + 35 = 238 cyls
100
175
51
133
8
140
7377
read/write head start
![Page 58: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/58.jpg)
58
C-SCAN (Circular scan)
Identical to SCAN, except head returns to cylinder 0 when it reaches the end of the disk
Treats cylinder list as a circular list that wraps around the disk Waiting time is more uniform for cylinders near the edge of the disk
Seek order = 73, 77, 100, 133, 140, 175, 199, 0, 8, 51 Distance = 10 + 4 + 23 + 33 + 7 + 35 + 24 + 199 + 8 + 43 = 386 cyls
100
175
51
133
8
140
7377
read/write head start
![Page 59: Operating Systems](https://reader036.vdocuments.us/reader036/viewer/2022062410/568164aa550346895dd6a849/html5/thumbnails/59.jpg)
59
C-LOOK
Identical to C-SCAN, except head only travels as far as the last request in each direction
Saves seek time from last sector to end of disk Seek order = 73, 77, 100, 133, 140, 175, 8, 51 Distance = 10 + 4 + 23 + 33 + 7 + 35 + 167 + 43 = 322 cylinders
100
175
51
133
8
140
7377
read/write head start