1/211
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Operating System
Chief software component of a computer system; manages hardware and software, acts as an interface between user and system, schedules tasks, manages storage, controls and manages computer resources, and makes the computer system convenient to use effectively.
Computer system
A system made up of hardware, operating system, application programs, and users.
Components of a computer system
Hardware, Operating System, Application Programs, and Users.
Hardware
Tangible machine or electronic components that provide the basic computing resources such as CPU, memory, and I/O devices.
Operating system component role
Controls and coordinates the use of hardware among the various application programs for the various users.
Application programs
Programs that define the ways in which system resources are used to solve users’ computing problems; examples include compilers, database systems, video games, and business programs.
Users
People, machines, or other computers that use the system.
Three types of program
User/application program, system program, and driver program.
User/application program
Programs used by users to perform tasks; example: MS Office.
System program
Program that acts as an interface between user and computer; examples include BIOS, defragmentation, and system restore tools.
Driver program
Program that communicates an I/O device with the computer.
Four subsystem managers of OS
Memory manager, Processor manager, Device manager, and File manager.
Network manager
Coordinates the services required for multiple systems to work cohesively together and manages shared network resources such as memory space, processors, printers, databases, and applications.
User command interface
Provides user communication with the operating system so the user can issue commands; it is unique to each OS and may vary between versions.
Two primary user command interface types
Graphical User Interface (GUI) and Command Line Interface (CLI).
Graphical User Interface (GUI)
A user command interface that allows interaction through graphical elements.
Command Line Interface (CLI)
A user command interface that allows interaction through typed commands.
Tasks of a manager
Monitor resources continuously, enforce policies determining who gets what when and how much, allocate the resource when appropriate, and de-allocate the resource when appropriate.
Memory manager
OS manager in charge of main memory (RAM).
Functions of the memory manager
Preserves space in main memory occupied by the OS, checks validity and legality of memory requests, allocates memory to processes, de-allocates memory when processes finish, sets up a memory tracking table, and tracks usage of memory by sections.
Processor manager
OS manager in charge of allocating the CPU and managing processes.
Functions of the processor manager
Tracks process status, handles jobs as they enter the system through the Job Scheduler, manages creation and deletion of processes, and manages each process within jobs through the Process Scheduler.
Device manager
OS manager in charge of monitoring peripheral devices, channels, and control units.
Functions of the device manager
Chooses the most efficient resource allocation method, allocates and de-allocates devices, follows scheduling policy, handles I/O devices, and accepts input from the user and gives corresponding output.
File manager
OS manager in charge of files stored on disk.
Functions of the file manager
Tracks every file in the system, controls user/program modification restrictions, enforces user/program resource access restrictions, allocates resources such as opening files, and de-allocates resources such as closing files.
Cooperation issues in operating systems
No single manager performs tasks in isolation; each part performs individual tasks and also interacts harmoniously with other managers.
Cloud computing
Practice of using Internet-connected resources to perform processing, storage, or other operations while the operating system still manages local resources and coordinates data transfer to and from the cloud.
Why use cloud computing
Social networking, e-mail services, document hosting, backup services, banking and financial services, health care, and government services.
Types of operating systems
Batch processing, Time-sharing, Hybrid OS, Real-time OS, Distributed OS, Embedded OS, and Interactive OS.
Two distinguishing features of operating systems
Response time and how data enters into the system.
Batch processing OS
OS type in which jobs are processed in batches.
Time-sharing OS
OS type that shares computing time among users or jobs.
Hybrid OS
OS type that combines features of more than one operating system style.
Real-time OS
OS type that operates under strict timing requirements and deadlines.
Distributed OS
OS type that manages multiple systems so they work together as one coordinated system.
Embedded OS
OS type designed for dedicated or embedded devices.
Interactive OS
OS type designed for direct interaction with the user.
Multiprocessing
Allows parallel program execution; two or more CPUs handle jobs.
Multitasking
Handling two or more programs at the same time from the user’s perception; the CPU performs one task at a time but runs so fast that jobs seem simultaneous.
Multiprogramming
Two or more programs are stored in main memory at the same time; when one waits for I/O, the CPU switches to another job and later returns to the waiting job.
Goal of multiprogramming
Efficiently utilize all computing resources.
Most common overall OS goal
Maximize use of system resources such as memory, processing, devices, and files, and minimize downtime.
Design considerations of an OS
RAM resources, number and type of CPUs, likely peripheral devices, networking capability, and security requirements.
Program
A non-active set of instructions stored on disk.
Job
A program from the moment it is selected for execution until it has finished running and becomes a program again; also described as a unit of work submitted by a user.
Process
A program in execution; an active entity that requires resources to perform its function.
Thread
A portion of a process that runs independently; a process can be made up of several threads.
Processor (CPU)
Performs calculations and executes programs.
Memory management
Management of main memory; critical because entire system performance depends on how much memory is available and how well memory is optimized during job processing.
Logical address
A value generated by the CPU that specifies a generic location relative to the program; sometimes called a virtual or relative address.
Physical address
An actual address in main memory; it is the logical address added to the starting location of the program in main memory.
Operating systems must employ memory techniques to
Track where and how a program resides in memory and convert logical addresses into physical addresses.
Four memory allocation schemes
Single-user contiguous scheme, Fixed partitions, Dynamic partitions, and Relocatable dynamic partitions.
Single-user contiguous scheme
Early memory allocation scheme where the entire program is loaded into memory in one contiguous space and jobs are processed sequentially.
How the single-user contiguous scheme works
The memory manager evaluates incoming process size, loads it if it fits, otherwise rejects it and checks the next process; when the process ends, the entire memory space becomes available again.
Disadvantages of single-user contiguous scheme
No support for multiprogramming or networking, not cost-effective for business, and the program size must be less than memory size to execute.
Fixed partitions
Memory allocation scheme in which main memory is partitioned at system startup into static partitions, with one contiguous partition per job.
Features of fixed partitions
Permits multiprogramming, partition sizes remain static, and the system must be shut down to reconfigure partitions.
Fixed partition requirements
Protection of the job’s memory space and matching job size with partition size.
Job allocation method in fixed partitions
First available partition with required size.
Disadvantages of fixed partitions
Requires contiguous loading of the entire program, arbitrary partition sizes lead to undesired results, large jobs have longer turnaround time, and oversized partitions waste memory through internal fragmentation.
Internal fragmentation
Wasted memory inside an allocated partition, usually because the partition is larger than the job placed in it.
Dynamic partitions
Memory allocation scheme where memory is partitioned as jobs are loaded and each job is given the memory it requests in one contiguous partition.
Job allocation method in dynamic partitions
First come, first served allocation method.
Advantage of dynamic partitions
Comparative memory waste within partitions is small because jobs are given the memory they request.
Disadvantages of dynamic partitions
Full memory utilization occurs only during loading of the first jobs; later allocations can waste memory and lead to external fragmentation between blocks.
External fragmentation
Wasted memory that exists as fragments or holes between allocated blocks.
Relocatable dynamic partitions
Memory allocation scheme that allows jobs to be moved during compaction so free memory can be gathered together.
Free list after relocation
Must show the partition for the new block of free memory.
Busy list after relocation
Must show the new locations for all jobs already in process that were relocated.
Bounds register
Stores the highest or last location accessible by each program.
Relocation register
Contains the value that must be added to each address referenced in the program so the system can access the correct memory addresses after relocation.
Relocation register when a program is not relocated
Zero is stored in the program’s relocation register.
Purpose of compaction and relocation
Optimizes use of memory and improves throughput.
Options for timing of compaction
When a certain percentage of memory is busy, when there are jobs waiting to get in, or after a prescribed amount of time has elapsed.
Goal when deciding compaction timing
Optimize processing time and memory use while keeping overhead as low as possible.
Memory allocation methods / algorithms in Chapter 2
First-Fit and Best-Fit are emphasized in the outline; the uploaded HTML notes also include Worst-Fit and Next-Fit in the lab/homework area.
First-Fit
Allocates a job to the first block or partition that is large enough.
Best-Fit
Allocates a job to the smallest available block or partition that is large enough.
Worst-Fit
Allocates a job to the largest available block or partition; included in the uploaded HTML lab material.
Next-Fit
Allocation method that starts searching from the last allocation point; included in the uploaded HTML homework section and identified in the past paper as hypothetical.
Deallocation
Release of memory space by the Memory Manager.
Three cases in deallocating an allotted memory block
The block to be deallocated is next to a free block, between free blocks, or isolated from other free blocks.
Virtual memory systems outline
Paged Memory Allocation, Demand Paging Memory Allocation, Page Replacement Policies, FIFO, LRU, MRU, Mechanics of Paging, Working Set, Segmented Memory Allocation, Virtual Memory, and Cache Memory.
Foundation of current virtual memory methods
Paged, demand paging, segmented, and segmented/demand paging methods.
Paged memory allocation
Memory allocation in which an incoming job is divided into pages of equal size and stored in non-contiguous page frames.
Best condition for paged memory allocation
Pages, sectors, and page frames should be the same size.
Memory manager tasks before program execution in paging
Determine number of pages in the program, locate enough empty page frames in main memory, and load all program pages into page frames.
Advantage of paged memory allocation
More efficient memory use and elimination of compaction because there is no external fragmentation.
New problem introduced by paging
Increased operating system overhead due to the need to keep track of the job’s pages.
Internal fragmentation in paging
Occurs only in the job’s last page frame.
Three tables used to track pages
Job Table (JT), Page Map Table (PMT), and Memory Map Table (MMT).
Job Table (JT)
Contains information for each active job, including job size and the memory location of the job’s PMT.
Page Map Table (PMT)
Contains information for each page, including page number and memory address.
Memory Map Table (MMT)
Contains one entry for each page frame, including location and free/busy status.
Line displacement / offset
The line distance showing how far away a line is from the beginning of its page; used to locate that line within its page frame.
How to determine page number and displacement
Divide the job space address by the page size; page number is the integer quotient and displacement is the remainder.
Demand paging
Memory allocation technique where only the pages needed at a given time are brought into memory rather than the whole program.
Demand paging advantage
Less memory is needed for a job at one time because only needed pages are loaded.