understanding operating systems fifth edition
DESCRIPTION
Understanding Operating Systems Fifth Edition. Chapter 13 Unix Operating System. Learning Objectives. The goals of UNIX designers The significance of using files to manipulate devices The strengths and weaknesses of having competing versions of UNIX - PowerPoint PPT PresentationTRANSCRIPT
Understanding Operating SystemsFifth Edition
Chapter 13
Unix Operating System
Understanding Operating Systems, Fifth Edition 2
Learning Objectives
• The goals of UNIX designers
• The significance of using files to manipulate devices
• The strengths and weaknesses of having competing versions of UNIX
• The advantages of command-driven user interfaces
• The roles of the Memory, Processor, Device, and File Managers in UNIX
Understanding Operating Systems, Fifth Edition 3
Overview
• Three major advantages of UNIX– Portability
• Code written in high-level language (C language) – Powerful utilities
• Brief, single operation commands• Combinable into single command
– Application device independence• Configurable to operate on any device type
• Disadvantage– No single standardized version– Brief, cryptic commands difficult for novice learner
Understanding Operating Systems, Fifth Edition 4
History
• Research project originally in 1965– Joint venture between Bell Labs, AT&T, General
Electric, and MIT• Goal
– Develop MULTICS for GE-645 mainframe• MULTICS ambition
– Serve diverse user group needs• Too intricate, complex, large for commercial value
• Bell labs withdrew in 1969• Ken Thompson and Dennis Ritchie continued the
project
Understanding Operating Systems, Fifth Edition 5
History (continued)
Understanding Operating Systems, Fifth Edition 6
The Evolution of Unix
• Original language– DEC PDP-7 assembly language
• First official version: 1971– Design
• Do one thing well
– Ran on DEC PDP-11– No pipes or filters
• Added in version 2
• Thompson and Ritchie: version 3– New programming language (C language)
Understanding Operating Systems, Fifth Edition 7
The Evolution of Unix (continued)
• AT&T forbidden to sell software– Universities and developers advanced software
• Commercial transformation
• Berkley BSD version: 1973-1975
• 1984: government deregulation– AT&T personal computer with UNIX System 4
• Contained additional Berkley version features
• AT&T System 4 promotion as standard fails
• 1990: two dozen versions
Understanding Operating Systems, Fifth Edition 8
The Evolution of Unix (continued)
• 1991: AT&T UNIX system laboratories– Develops System V release 4– Features
• System V release 3, BSD 4.3, SunOS, Xenix
• “The Open Group” formed– Owns UNIX trademark
• 1993: Berkeley– 4.4 BSD: based on AT&T’s UNIX (AT&T license)– Novell acquires UNIX from AT&T
Understanding Operating Systems, Fifth Edition 9
The Evolution of Unix (continued)
• Current releases– Modify “do one thing well” position– Commands more difficult to use
• Pipelines preserved– Adaptable to new situations with ease
• Meet new user needs– Full local area network support– Comply with international standards– Security improved– Uses Common Desktop Environment (CDE)– ISO/IEC 9945:2003 Standard
Understanding Operating Systems, Fifth Edition 10
Design Goals
• Thompson and Ritchie vision– UNIX operating system
• Created by programmers for programmers– Fast, flexible, easy-to-use
• Immediate goals– Support software development
• Included utilities for customized code• Utilities designed for simplicity: do one thing well• Small manageable sections of code
– Keep algorithms simple• Based on simplicity, not sophistication
Understanding Operating Systems, Fifth Edition 11
Design Goals (continued)
• Long-term goal– Portability
• Reduces conversion costs• Application packages not obsolete
– Achieved with UNIX version 4• Hardware independent
• POSIX – Portable operating system interface for computer
environments• IEEE standards defining portable operating system
interface• IEEE STD. 1003.1 (2004 edition)
Understanding Operating Systems, Fifth Edition 12
Memory Management
• Multiprogramming systems– Swapping (small jobs)
• Entire program in main memory before execution
• Program size restriction
• Round robin policy
– Demand paging (large jobs)• More complicated hardware
• Increases system overhead
• Thrashing (under heavy loads)
• Advantage: implements virtual memory concept
Understanding Operating Systems, Fifth Edition 13
Memory Management (continued)
• Typical internal memory layout (single user)– Program code– Data segment– Stack
Understanding Operating Systems, Fifth Edition 14
Memory Management (continued)
• Program code– Sharable portion of program– Reentrant code
• Physically shared by several processes
• Code protected: instructions not modified during normal execution
• Data references: without absolute physical address
– Space allocation• Program cannot release until all processes completed
• Text table: tracks processes using program code
Understanding Operating Systems, Fifth Edition 1515
Memory Management (continued)
• Data segment– After program code
• Grows toward higher memory locations – Nonsharable section of memory
• Stack– Starts at highest memory address
• Grows downward• Subroutine calls and interrupts add information • Main memory • Process information saved when process interrupted
– Nonsharable section of memory
Understanding Operating Systems, Fifth Edition 16
Memory Management (continued)
• UNIX kernel– Implements “system calls”
• Memory boundaries for process coexistence
– System calls• File Manager interaction and request of I/O services
– Implements most primitive system functions• Permanently resides in memory
– Uses LRU page replacement algorithm
• Network PCs, single-user, and multi-user systems– Use same memory management concepts
Understanding Operating Systems, Fifth Edition 17
Process Management
• Handles– CPU allocation– Process scheduling– Satisfaction of process requests
• Kernel maintains tables– Coordinates process execution– Device allocation
• Uses predefined policies– Select process from READY queue– Begin execution
• Give time slice
Understanding Operating Systems, Fifth Edition 18
Process Management (continued)
• Process scheduling algorithm– Selects highest priority process to run first– Priority value: accumulated CPU time
• Processes with large CPU time get lower priority
– Compute-to-total-time ratio• System updates for each job every second
• Total time process in system divided by used process CPU time
– Ratio = one• CPU-bound job
Understanding Operating Systems, Fifth Edition 19
Process Management (continued)
• Process scheduling algorithm (continued)– Processes with same computed priority
• Handled by round robin
– Interactive processes: low ratio (no special policies)– Balance I/O-bound jobs with CPU-bound jobs
• Keeps processor busy
• Minimizes waiting processes overhead
Understanding Operating Systems, Fifth Edition 20
Process Management (continued)
• Process scheduling algorithm (continued)– Loading process from READY queue
• Process with longest secondary storage time
– Swap out process• Process waiting longest (disk I/O, idle )
– When processor becomes available• Process selected may not be ready (waiting on I/O)
• Determine inactive but ready for execution
• Process priorities recalculated
• Handled dynamically
Understanding Operating Systems, Fifth Edition 21
Process Table Versus User Table
• Simple processes (nonsharable code)
• Tables– Keep system running smoothly
• Process table– Always resides in memory– Maintains text table
• User table– Resides in memory while process is active– User table, process data segment, code segment
• Swapped as needed
Understanding Operating Systems, Fifth Edition 22
Understanding Operating Systems, Fifth Edition 23
Process Table Versus User Table (continued)
• Process table
• Each entry contains: – Process identification number– User identification number– Process memory address or secondary storage
address– Process size and scheduling information
• Set up when process is created
• Deleted when process terminates
Understanding Operating Systems, Fifth Edition 24
Process Table Versus User Table (continued)
• Text table– Sharable code processes– Process table maintains
• Contains:– Memory address or secondary storage address of
text segment (sharable code)– Count: tracks number of processes using code
• Increased by one when process starts using code
• Decreased by one when process stops using code
• Count = 0: implies code no longer needed
Understanding Operating Systems, Fifth Edition 25
Process Table Versus User Table (continued)
• User table– Allocated to each active process– Stored in transient memory area
• Contains:– User and group identification numbers
• Determine file access privileges– Pointers to system’s file table
• Every file process uses– Pointer to current directory– List of responses for various interrupts– All information accessible when process running
Understanding Operating Systems, Fifth Edition 26
Synchronization
• UNIX– True multitasking operating system
• Requires processes wait for certain events– Each event represented by integers
• Equal to address of table associated with event
• Race occurs – Event happens during process transition decision
• Wait for event and entering WAIT state
Understanding Operating Systems, Fifth Edition 27
Synchronization (continued)
• fork– Execute one program from another program – Second program
• Given all first program attributes (open files)
– Save first program in original form– Split program: two copies
• Both run from statement after fork command
– fork executed• “Process id” (pid) generated
• Ensure each process has unique ID number
Understanding Operating Systems, Fifth Edition 28
Synchronization (continued)
Understanding Operating Systems, Fifth Edition 29
Synchronization (continued)
• wait– Synchronize process execution
• Suspend parent until child finished
– Program IF-THEN-ELSE structure• Controlled by pid value
• pid > zero: parent process
• pid = zero: child process
• pid < zero: error in fork call
Understanding Operating Systems, Fifth Edition 30
Synchronization (continued)
Understanding Operating Systems, Fifth Edition 31
Synchronization (continued)
• exec– Start new program execution from another program
• execl, execv, execls, execlp, and execvp
– Successful exec call • Overlay second program over first
• Only second program in memory
– No return from successful exec call• Parent-child concept: does not hold
– Each exec call• Followed by test ensuring successful completion
Understanding Operating Systems, Fifth Edition 32
Synchronization (continued)
Understanding Operating Systems, Fifth Edition 33
Device Management
• Device independence to applications– I/O device treated as special file type
• Device files given name– Descriptors called “iodes”
• Identifies devices, contains device information, stored in device directory
• Device drivers– Subroutines working with operating system – Supervise data transmission
• Between main memory and peripheral unit– Most common drivers included in UNIX
Understanding Operating Systems, Fifth Edition 34
Device Management (continued)
• Device driver kernel incorporation– During system configuration
• Recent UNIX versions– Program called config– Automatically creates conf.c
• For any hardware configuration– conf.c contains parameters controlling resources
• Number of internal kernel buffers and swap space size– conf.c contains two tables
• bdevsw (“block I/O switch”)• cdevsw (“character I/O switch”)
Understanding Operating Systems, Fifth Edition 35
Device Classifications
• Divide I/O system– “Block I/O” system (“structured I/O” system) – “Character I/O” system (“unstructured I/O” system)
• Physical device identification– Minor device number– Major device number– Class: block or character
Understanding Operating Systems, Fifth Edition 36
Device Classifications (continued)
Understanding Operating Systems, Fifth Edition 37
Device Classifications (continued)
• Class: block or character– Each has configuration table
• Array of entry points into device drivers– Major device number
• Index to array to access appropriate code (specific driver)
– Minor device number• Passed as an argument to device driver• Access one of several identical physical devices
– Block I/O system• Devices addressed as 512-byte block sequences• Allows device manager to buffer (reduce I/O traffic)
Understanding Operating Systems, Fifth Edition 38
Device Classifications (continued)
• Character class devices– Device drivers handle implementing character lists– Example: terminal
• Typical character device
• Two input queues and one output queue
• I/O procedure synchronized through hardware completion interrupts
• Some devices belong to both classes– Examples: disk drives, tape drives
Understanding Operating Systems, Fifth Edition 39
Device Drivers
• Special section in kernel– Includes instructions
• Allows operating system communication with device
• Disk drive’s device drivers– Use seek strategy to minimize arm movement
• Kept in set of files– Loaded as needed
• Case of seldom used devices– Kept in memory all the time
• Loaded at boot time– Kept in /dev directory by default and convention
Understanding Operating Systems, Fifth Edition 40
File Management
• Three file types – Directories– Ordinary files– Special files
• Each enjoys certain privileges
• Directories– Maintain hierarchical structure of file system– Users allowed to read information in directory files– Only system allowed directory file modification
Understanding Operating Systems, Fifth Edition 41
File Management (continued)
• Ordinary files– Users store information– Protection based on user requests
• Related to read, write, execute, delete functions performed on file
• Special files– Device drivers providing I/O hardware interface– Appear as entries in directories– Part of file system (most in /dev directory)– Special filename indicates type of device association
Understanding Operating Systems, Fifth Edition 42
File Management (continued)
• Files stored as sequences of bytes– No structure imposed
• Text files– Character strings
• Lines delimited by line feed, new line, character
• Binary files– Sequences of binary digits
• Grouped into words as they appear in memory during program execution
• Structure of files– Controlled by programs using them: not by system
Understanding Operating Systems, Fifth Edition 43
File Management (continued)
• Organizes disk into blocks of 512 bytes each
• Divides disk into four basic regions – First region (address 0): reserved for booting– Second region: contains disk size and other regions’
boundaries – Third region includes: file definitions called “i-list” – Remaining region: free blocks available for file
storage
• Files stored in contiguous empty blocks– Simple allocation and no need to compact
Understanding Operating Systems, Fifth Edition 44
File Management (continued)
• “i-node”
• Each entry in i-list called an “i-node” (or inode)– Contains 13 disk addresses
• Contains specific file information– Owner’s identification– Protection bits, physical address, file size– Time of creation, last use, and last update– Number of links– File type
• Directory, ordinary file, or special file
Understanding Operating Systems, Fifth Edition 45
File Naming Conventions
• Case-sensitive filenames
• 255 character length
• No file naming conventions– Some compilers expect specific suffixes
• Supports hierarchical tree file structure– Root directory identified by slash (/)
Understanding Operating Systems, Fifth Edition 46
File Naming Conventions (continued)
Understanding Operating Systems, Fifth Edition 47
File Naming Conventions (continued)
• Path name rules– Path name starting with slash
• Root directory
– Path name • One name or list of names: separated by slashes
• Last name on list: filename requested
– Two periods (..) in path name• Moves upward in hierarchy (closer to root)
• Only way to go up hierarchy
• All other path names go down tree
– Spaces not allowed within path names
Understanding Operating Systems, Fifth Edition 48
Directory Listings
• “long listing” – Eight pieces of information for each file
• First column – Shows file type and access privileges for each file
• First character: nature of file or directory
• Next three characters: access privileges granted file owner
• Next three characters: access privileges granted other user’s group members
• Last three characters: access privileges granted to users at large (system-wide)
Understanding Operating Systems, Fifth Edition 49
Directory Listings (continued)
• Second column– Indicates number of links (number of aliases)
• Referring to same physical file
• Aliases– Important UNIX feature: support file sharing
• Several users work together on same project– Shared files appear in different directories belonging
to different users– Filename: may be different from directory to directory– Eventually number will indicate when file no longer
needed: can be deleted
Understanding Operating Systems, Fifth Edition 50
Directory Listings (continued)
Understanding Operating Systems, Fifth Edition 51
Data Structures
• File descriptors divided into parts– Hierarchical directories
• Contain filename and i-number
• Pointer to another location: i-node
– i-node • Contains rest of information
– i-nodes stored in reserved part of device• Where directory resides
– i-node has 13 pointers (0–12)
Understanding Operating Systems, Fifth Edition 52
Data Structures (continued)
Understanding Operating Systems, Fifth Edition 53
Data Structures (continued)
• When file opened– Device, i-number, read/write pointer stored in system
file table and indexed by i-node
• When file created– i-node allocated to it– Directory entry with filename and i-node number
created
Understanding Operating Systems, Fifth Edition 54
Data Structures (continued)
• When file linked– Directory entry created with new name – Original i-node number and link-count field in the i-
node incremented by one
• When shared file deleted– Link-count field in i-node decremented by one– When count reaches zero
• Directory entry erased
• Deallocate all disk blocks and allocate i-node block to file
Understanding Operating Systems, Fifth Edition 55
User Interface
• Command-driven system
• User commands– Very short
• One character or a group of characters (acronym)
– Cannot be abbreviated or spelled out – Must be in correct case
• System prompt very economical– Only one character: ($) or (%)
• Error messages quite brief
Understanding Operating Systems, Fifth Edition 56
User Interface (continued)
Understanding Operating Systems, Fifth Edition 57
User Interface (continued)
• General syntax of commands– command arguments file_name
• “command”– Any legal operating system command
• Interpreted and executed by shell
• “arguments“– Required for some commands, optional for others
• “file_name” – Relative or absolute path name
Understanding Operating Systems, Fifth Edition 58
User Interface (continued)
Understanding Operating Systems, Fifth Edition 59
Script Files
• Automate repetitious tasks– Command files
• Often called shell files or script files
• Each line of file– Valid instruction
• Executed by typing sh and script file name
• Also executed by defining file as executable command– Type filename at system prompt
Understanding Operating Systems, Fifth Edition 60
Script Files (continued)
• Script file example
setenv DBPATH /u/lumber:.:/zdlf/product/central/db
setenv TERMCAP $INFODIR/etc/termcap
stty erase `^H’
set savehistory
set history=20
alias h history
alias 4gen infogen -f
setenv PATH /usr/info/bin:/etc
Understanding Operating Systems, Fifth Edition 61
Redirection
• Send output to file or another device– Symbol: > (between command and destination)– Examples:
• ls > myfiles• cat chapt1 chapt2 > sectiona,• cat chapt* > sectiona
– Symbol >> appends new file to an existing file– Examples:
• cat chapt1 chapt2 >> sectiona• cat chapt* >> sectiona
Understanding Operating Systems, Fifth Edition 62
Redirection (continued)
• Reverse redirection (<)– Takes input for program from existing file instead of
keyboard– Example:
• mail ann roger < memo
Understanding Operating Systems, Fifth Edition 63
Redirection (continued)
• Redirection (>)– Combined with system commands to achieve any
desired results– Example: who > temporary
• Store in “temporary” file: all user names logged on
• Interpretation of < and >– Carried out by shell – Not by individual program
• Input and output redirection– Used with any program
Understanding Operating Systems, Fifth Edition 64
Pipes
• Provide possibility to redirect output or input to selected files or devices– Connect output from one program to input of another– No need for temporary or intermediate files– Example: who | sort
• Pipeline– Several programs simultaneously processing same
I/O stream– Example: who | sort | lpr
Understanding Operating Systems, Fifth Edition 65
Filters
• Program– Read some input, manipulate it, generate output– wc (word count):
• Example: wc journal• System response: 10 140 700• File journal has 10 lines, 140 words, 700 characters
– sort: Contents of file sorted and displayed on screen• Example: sort sortednames
Understanding Operating Systems, Fifth Edition 66
Filters (continued)
• Sort list in alphabetical order ignoring letter case– sort –f > sortednames
• Obtain numerical sort in ascending order– sort -n > sortednums
• Obtain numerical sort in descending order– sort -nr > sortednums
Understanding Operating Systems, Fifth Edition 67
Additional Commands
• man– Displays operating system online manual– Example: man cmp
• Displays page for compare (cmp) command
• grep– “global regular expression and print”– Look for specific character patterns– Examples:
• grep Pittsburgh maillist• grep -v Pittsburgh maillist• grep -c Pittsburgh maillist
Understanding Operating Systems, Fifth Edition 68
Additional Commands (continued)
• grep (continued)– Can be combined with who command– Example: who | grep sam
• Sam’s name, device, date and time he logged in
– Example: ls -l / | grep '^d‘ • Displays subdirectories list (not files) in root directory
• nohup– Log off the system without program completion– Example:
nohup cp oldlargefile newlargefile and
Understanding Operating Systems, Fifth Edition 69
Additional Commands (continued)
• nice– Allows lowering program priority– Example:
nice cp oldlargefile newlargefile and
Understanding Operating Systems, Fifth Edition 70
Summary
• UNIX: major force in operating system field– Written by programmers for programmers– Quite popular among programmers
• Advantages– Spare user interface, device independence,
portability, lack of verbosity, powerful command combinations
• Disadvantages– Learning command-driven interface, brief commands
• Graphical interface and point-and-click surfacing