What are the 4 components of a computer system?
An operating system is a resource allocator?
The bootstrap program is stored in
The occurrence of an event is usually signalled by an from either hardware or software.
Main memory is typically implemented in semiconductor technology called variable random memory (VRAM).
Since EEPROM can not be changed it only stores static programs like bootstrap
A typical instruction-execution cycle for a Von Neumann Architecture is:
1. Fetch an instruction from memory and stores the instructions in the instruction register.
2. Decode the operation and fetch operands from memory
3. Instruction is executed and stored back in memory
1. Decode the operation and fetch operands from memory
2. Instruction is executed and stored back in memory
3. Fetch an instruction from memory and stores the instructions in the instruction register.
We would like programs and data to both reside in main memory. This is not possible for two reasons:
1. Main memory is usually too small to store all needed programs and data permanently
2. Main memory is a volatile storage device that loses its contents when power is turned off
1. Main memory is usually too small to store all needed programs and data permanently
2. Main memory is a non-volatile storage device that loses its contents when power is turned off
1. Using this approach would be to fast for the operating system to interpret and therefore would not be feasible
2. Programs are not written this way and would be way to difficult to change the way a computer works now.
What is the main requirement for secondary-storage?
The ability to hold large quantities of data permanently
The ability to use as little power as possible
The smaller the size the better
The faster the better
The most common secondary storage is a which provides storage for both programs and data.
The main difference among the various storage systems lie in:
Volatile Storage loses its contents when power to the device is removed
What are the two types of Sold-State disks?
Solid-State disk stores data in large DRAM array during normal operation but also contains a hidden magnetic hard disk and a battery for backup-power
Solid-State disk is flash memory
Electromagnetic Varient Memory
Magnetic Allocation memory
A device controller must contain what?
some local buffer storage and a set of special-purpose registers
a device controller must house a single processor
must container at least one cache
How do we solve the problem of interrupt-driven I/O having high overhead when moving bulk data?
direct memory access (DMA)
device memory access (DMA)
process memory access (PMA)
local memory access (LMA)
What do single-processors not run?
Dynamicprocessor systems( Multiprocessor systems, Singleprocessor systems, Complexprocessor systems, Dynamicprocessor systems ) have two or more processors in close communication, sharing the computer bus and sometimes the clock, memory, and peripheral devices.
advantages of multiprocessor systems?
economy of scale
size of unit
is the ability to continue providing service proportional to the level of surviving hardware.
Asymmetric multiprocessing is where each processor performs all tasks within the operating system.
Symmetric multiprocessing is where each processor is assigned a specific task
more multiprocessors increases computing power but if the CPU has an controller then adding CPUs also increase the amount of memory addressable in the system
multiprocessing can cause a system to change its memory access model from uniform memory access (UMA)
non-uniform memory access (NUMA)( uniform memory access (UMA), non-uniform memory access (NUMA) ) to non-uniform memory access (NUMA)
uniform memory access (UMA)( non-uniform memory access (NUMA), uniform memory access (UMA) )
is the situation in which access to RAM from any CPU takes time
is some parts of memory may take to access than other parts
multicore systems are multiprocessor systems, not all multiprocessor systems are multicore
are where each processor board boots independently and runs its own operating system
What is NVRAM?
DRAM with battery backup
RAM with volatile memory
ROM with non-volatile memory
DRAM with volatile and non-volatile memory
Another type of multiprocessor system is a clustered system?
clustered computers are defined as:
are closely linked via a local-area network or a faster interconnect
share processing power
clustering is usually used to provide
why is clustering used?
service will continue even if one or more systems in the cluster fail
higher processing used by having more than one processor work on a job
a boss processor will switch in and out jobs so there is no idle processors no matter what
What are the components of clustered systems?
gathers together multiple CPUs
are composed of two or more individual systems - or nodes - joined together
multiple operating systems run on the same board
each processor runs its own operating system
clustered systems are composed of two or more individual systems - or nodes - joined together. This is called loosely coupled
clustering can be structured asymmetrically or symmetrically
in asymmetric clustering one machine is in while the other is running the applications
what is the hot-standby host function?
the host machine does nothing but monitor the active server
the host machine allocates jobs to other servers
what does an asymmetric hot-standby host machine do if the server fails?
the hot-standby host becomes the active server
the hot-standby host reallocates the jobs to other servers
the hot-standby host cancels all jobs for that server and notifies all other servers of its failure
symmetric clustering is when two or more hosts are running applications and are monitoring each other
symmetric clustering is more efficient?
why is symmetric clustering more efficient?
is uses all of the available hardware
it talks between each processor more efficiently
what are the component(s) of cluster parallelization?
parallelization divides a program into separate components that run in parallel on individual computers in the cluster
these applications are designed so that once each computing node in the cluster has solved its portion of the problem, the results from all the nodes are combined into a final solution
parallelization concurrently divides jobs between nodes
to provide shared access, the system must also supply access control and locking to ensure that no conflicting operations occur. this is known as
improvements to clustering are made possible by
the advantage(s) of storage-area networks (SANs)
allows many systems to attach to a pool of storage
if the applications and their data are stored on the SAN, then the cluster software can assign the application to run on any host that is attached to the SAN
allows concurrent processing through allocation of storage
symmetric processing is possible through sharing of processing of programs
beowulf clusters are designed to solve high-performance computing tasks
beowulf computing nodes typically run Linux operating systems
why is beowulf clusters a low cost strategy for building a high-performance computing cluster?
uses open-source software
uses less power
less processors are needed
beowulf clusters nodes use a set of software libraries to communicate with one another
increases CPU utilization by organizing jobs (code and data) so that the CPU always has one to execute
the main idea(s) behind multiprogramming?
the jobs are prioritized so that the most important jobs are done first
the program uses all available processors to run the program concurrently
as long as at least one job needs to execute the CPU is never idle
what does time sharing require?
an interactive computer system
a dynamic computer system
a static computer system
a clustered computer system
a GUI computer system
a time-shared operating system allows many users to share the computer simultaneously
how do we achieve the goal of reasonable time from time-sharing?
we use swapping or virtual memory
we use a method called logical memory
what is virtual memory?
it abstracts main memory into a large, uniform array of storage separating logical memory as viewed by the user from physical memory
memory is run in the cloud
memory is constantly switched out between the main memory and cache to give the allusion of memory space larger than it actually is
modern systems are driven
bit is added to the hardware of the computer to indicate the current mode
- kernel (0)
- user (1)
what is the function of dual mode?
it provides the operating system the means of protecting it from errant users and errant users from one another
the operating systems is protected from hackers that are trying to gain remote access
it protects your files from errant users
has more privileges than the user processes but fewer than the kernel
a timers period may be or
variable timer is generally implemented by a fixed-rate clock and counter
why do we use timers?
we can use timers to prevent a user program from running too long
to calculate the time efficiency of a program
to display the time of a files last update
a program is a entity, like the contents of a file stored on disk, whereas a process is an entity
a single-threaded process has one specifying the next instruction to execute
the operating system is responsible for the following activities in connection with process management:
scheduling processes and threads on the CPUs
creating and deleting both user and system processes
suspending and resuming processes
providing mechanisms for process synchronization
providing mechanisms for process communication
for a program to be executed it must be mapped to absolute addresses and loaded into memory
when selecting the memory-management scheme you must take into account many factors but especially the design of the system
the operating system is responsible for the following activities in connection with memory management:
keeping track of which parts of memory are currently being used and who is using them
deciding which processes (or parts of processes) and data to move into and out of memory
allocating and deallocating memory space as needed
allocating and deallocating processes to complete jobs
the operating system is responsible for the following activities in connection with the file management:
creating and deleting files
creating and deleting directories to organize files
supporting primitives for manipulating files and directories
mapping files onto secondary storage
backing up files on stable (nonvolatile) storage media
communicating between the clouds file system and the local file system on your computer
the operating system is responsible for the following activities in connection with the disk management:
the entire speed of operation of a computer may hinge on the speeds of the disk subsystem and the algorithms that manipulate that subsystem
when we need a particular piece of information, we first check wether it is in the cache
which of the following is true if any of the above statement?
if it is, we use the information directly from the cache
if it is not, we use the information from the source, putting a copy in the cache under the assumption that we will need it again soon
if it is not, we use the information directly from the cache
if it is, we use the information from the source, putting a copy in the cache under the assumption that we will need it again soon
with multiprocessors each has its own local cache so when the value of something changes you must make sure that value is changed computer wide. this is called
I/O subsystems consists of several component(s):
a memory-manamgment component that includes buffering, caching, and spooling
a general device-driver interface
drivers for specific hardware devices
most operating systems maintain a lot of user names and associated
in a , each item points to its successor
in a , a given item can refer either to its predecessor or to its successor
in a , the last element in the list refers to the first element, rather than to null
tree is when a parent may have an unlimited number of children
tree is when a parent may have at most two children, which we term left child and the right child
tree, additionally requires an ordering between the parents two children in which left_child <= right_child
tree is when a tree containing n items as at most log(n) levels
takes data as input, performs a numeric operation on this data, and returns a numeric value
what is it called when two hash function have the same output
in the event of a hash collision what method do we employ
we use a linked list at the table location that contains all of the items with the same hash value
we use a array at the table location that contains all of the items with the same hash value
we use a stack at the table location that contains all of the items with the same hash value
associates pairs using a hash function
is a string of n binary digits that can be used to represent the status of n items
when are bitmaps commonly used?
when there is a need to represent the availability of a large number of resources
when there is a need to represent the large number of processes
when there is a need to represent the large number of jobs
is a collection of physically separate, possibly heterogeneous computer systems that are networked to provide users with access to the various resources that the system maintains
is a communication path between two or more systems
what do distributed systems depend on for their functionality?
is the most common network protocol, and it provides the fundamental architecture of the Internet
connects computers within a room, a building or a campus
usually links buildings, cities or countries
connects a phone to a headset or a smartphone and a desktop computer
is an operating system that provides features such as file sharing across the network, along with communication scheme that allows different processes on different computers to exchange messages
many of todays systems act as to satisfy requests generated by
the function of a computer-server system:
provides an interface to which client can send a request to perform an action. in response the server executes the action and sends the results to the client
provides a file-system interface where clients can create, update, read, and delete files
provides a file-system interface where clients can create, update, read, and delete files
an example of a computer-server system:
server running a database
server running a web browser
an example of a file-server system:
computing clients and servers are not distinguished from one another
in a system, the server is a bottleneck; but in a system, services can be provided by several nodes distributed throughout the network
deeming what services are available is accomplished in one of two general ways:
- when a node joins a network, it registers its services with a centralized lookup service on the network, Any node desiring a specific service first contacts this centralized lookup service to determine which node provides the service. the remainder of the communication takes place between the client and the service provider
- An alternative scheme uses no centralized lookup service. Instead, a peer acting as a client must discover what node provides a desired service by broadcasting a request for the service to all other nodes in the network. the node (or nodes) providing that service responds to the peer making the request. To support this approach, a discovery protocol must be provided that allows peers to discover services provided by other peers in the network
is used when the source CPU type is different from the target CPU type
process of emulation: every machine-level instruction that runs natively on the source system must be translated to the equivalent function on the target system
is a form of emulation in that the high-level language code is translated to native CPU instructions, emulating not another CPU but a theoretical virtual machine on which that language could run natively
is an operating system that is natively compiled for a particular CPU architecture runs within another operating system also native to that CPU
cloud computing is a type of computing that delivers computing, storage, and even applications as a service across a network
which is not a type of cloud computing
a is a cloud available vie the internet to anyone willing to pay for the services
a is a cloud run by a company for that company's own use
a is a cloud that includes both public and private cloud components
is one or more applications (such as word processors or spreadsheets) available via internet
______________ is a software stack ready for application use via internet
Platform as a service (PaaS)
Software as a service (SaaS)
Infrastructure as a service (IaaS)
Infrastructure as a service (IaaS) is one or more applications available via internet
embedded systems almost always run operating systems
when do we use real-time systems?
when rigid time requirements have been placed on the operation or processor or the flow of data
when we need to run a process concurrently in the system
when we are running a blade-server system we want to use a real-time system
The types of user interfaces are:
- command-line interface (CLI)
- batch interface
- graphical user interface (GUI)
for efficiency and protection, users usually can control I/O
is when two or more processes read and write to a shared section of memory
is packets of information in predefined formats are moved between processes by the operating system
when several separate processes execute concurrently, it should be possible for one process to interfere with the others or with the operating system itself
the specifies a set of functions that are available to an application programmer, including the parameters that are passed to each function and return values the program can expect
system-call interface serves as the link to system calls made available by the operating system
what are the method(s) used to pass parameters to the operating system?
pass the parameters in registers
parameters are generally stored in a block, or table, in memory, and the address of the block is passed as a parameter in a register
parameters also can be placed, or pushed, onto the stack by the program and popped off the stack by the operating system
is a system program designed to aid the programmer in finding and correcting errors
what are the major categories of system calls?
what is part of the message-passing model?
communicating processes exchange messages with one another to transfer information
each computer in a network has a host name by which it is commonly known
each process has a process name
most processes that will be receiving connections are special-purpose daemons
the form of the data is determined by the processes and is not under the operating system control
the processes are also responsible for ensuring that they are not writing to the same location simultaneously
what is part of the shared-memory model?
shared memory requires that two or more processes agree to remove the restriction that one process cannot access another processes memory
the form of the data is determined by the processes and is not under the operating systems control
what are the system utilities categories?
programming loading and execution
operating system requirements are divided into two basic groups: and
are how to do something and are what will be done
the advantage to writing in high level languages is that it is faster and lowers storage requirements
the main advantage to the layered approach when making an O.S. is
simplicity of construction and debugging
debugging and less time
less time and less cost
The main function of the microkernel is to provide communication between the client program and various services in the user space. Communication is provided through message passing
what is one benefit of the microkernel?
it makes extending the operating system easier. it also provides more security and reliability.
the performance of microkernels overhead is extremely small
what is the loadable kernel modules?
the kernel has a set of core components, and links to additional services via modules, either at boot time or during run time
remove all nonessential components from the kernel and implement them as system and user level programs
the best methodology to OS design is using loadable kernel modules
how is Mac OSX a hybrid system?
the top layer the user interface. below theses layers is the kernel environment which is MACH and BSD UNIX kernel
the top layer the user interface. below theses layers is the kernel environment which is cocoa api
a failure in the kernel is called a crash and information about it is saved in a
the operating can take a , a capture of the memory of the process, to be stored for later analysis
the operating system produces of system behaviour to try to find bottle necks
periodically samples the instruction pointer to determine which code is being executed. It can show stat trends but not individual activity.
an OS must be generated for each specific computer site, a process known as
The SYSGEN is on the disk or ISO of the OS and it queries the user on hardware information such as:
What CPU is used? What options are installed?
How will the boot disk be formatted? How many partitions are there?
How much memory is available?
What devices are available?
What operating system options are desired?
after the OS is generated, it must be loaded into the kernel using a . This program is placed in ROM.
a bootstrap can also run diagnostics on a system to ensure it is properly working before booting
a system executes jobs, whereas a system has user programs, or tasks
program counter( process, text section, program counter ) is more than the program code, which is sometimes known as the text section
program counter( text section, process, program counter ). It also includes the current activity, represented by the program counter
text section( program counter, process, text section )
what does the process stack generally contain?
contains temporary data. as well as a data section
contains temporary data. as well as a process section
contains program counter as well as a data section
what can a process also include? and what is its function?
heap - memory that is dynamically allocated during process run time
hash - memory that is dynamically allocated during process run time
hash - memory that is asymmetrically allocated during process run time
heap - memory that is asymmetrically allocated during process run time
the program itself is not a process. A program is a ___________
a process is a(n) __________________
a program becomes a process when it is loaded into memory
select the common ways of executing a program:
double click an icon representing the executable file
entering the name of the executable file on the command line
using the program counter
using a system call to start a program
using the command startx
although two processes can be related to the same program, they are not considered two separate execution sequences
a process itself can be an execution environment for other code
as a program executes, it changes . The of a process is defined in part by the current activity of the process
what are not common states or a process?
it is important to know that only process can be running at a time, while can be ready or waiting
each process is represented in the operating system by a also called the control block.
which is not part of the process control block?
I/O status information
- the state may be new, running, halted, ect.
- the counter indicates the address of the next instruction to be executed for this process
- the registers vary in number and type, depending on the computer architecture. They include accumulators, index registers, stack pointers, and general purpose registers, as well as condition code information. All this information must be saved when an interrupt occurs.
______________ - this information includes a process priority, pointers to scheduling queues, and any other scheduling parameters
-management information - This information may include such items as the value of the base and limit registers and the page tables, or the segment tables, depending on the memory system used by the operating system.
information - This information includes the amount of CPU and real time used, time limits, account numbers, job process numbers, and so on
I/O information - This information includes the list of I/O devices allocated to the process, a list of open files, and so on
a process is a program that performs a single of execution. Many systems now have upgraded this to allow a program to run multiple of execution.
On a system that supports threads, the is extended to include the information for each thread.
we want to have processes running at all times to maximize CPU utilization
what is the objective of time sharing?
is to switch the CPU among processes so frequently that users can interact with each program while it is running
is to switch the CPU among processes so that each process gets equal time to compute its job
to meet the objective of time sharing, the selects an available process for the program execution on the CPU
on single cores, only one process can run at a time
as a process enters a system, it is put into a , which consists of all processes in the system
the processes that are residing in main memory and are ready and waiting to execute are kept on a list called the .
a new process is put on the ready queue until it is selected for execution or
Once a process gets the CPU, one of several events may occur:
The process could issue an I/O request and be put on an I/O queue
The process could create a new child process and wait for the child's termination
The process could be forcibly removed from the CPU, as a result of an interrupt and put back in the ready queue
the operating system must select processes from the queues using an appropriate
The or selects processes from the batch pool and loads them into memory for execution
The or selects from among the processes that are ready for execution and allocates the CPU to one of them
The short term scheduler must select a new process for the CPU frequently
The long term scheduler controls the degree of multiprogramming (the number of processes in memory)
when is the degree of multiprogramming stable?
the average number of process creation is equal to the average departure rate of the processes leaving the system
the average number of process creation is more than the average departure rate of the processes leaving the system
the average number of process creation is less than the average departure rate of the processes leaving the system
the average number of process creation is two times more than the average departure rate of the processes leaving the system
An I/O bound process generates I/O requests infrequently, spending more time doing computations and a CPU bound process is one that spends most of its time doing I/O rather than computations.
some systems such as time sharing systems may introduce -term schedulers. The idea is that sometimes it is advantageous to remove a process from memory to reduce the degree of multiprogramming. Later the process can be reintroduced to memory and start off where they left off, in a process called .
when an interrupt occurs, the system needs to save the current of the process running on the CPU so that it can restore that context when processing is done
Gernerally, we perform a state save
state copy( state save, state restore, state copy ) of the current state of the CPU, be it in kernel mode or user mode, then use a state restore
state resume( state restore, state save, state copy, state resume ) to resume operation
the process of completing a state save and state restore is known as a context switch
context flip( context switch, context swap, context flip )
the process is a child of init and is responsible for creating additional processes that perform tasks on behalf of the kernel
the process is a child of init and is responsible for the managing clients that connect to a system using ssh
the process is also a child of init and it is used to manage clients that directly log onto the system
When a process creates a new process. Which are possible for execution:
the parent continues to execute concurrently with the children
the parent waits until some or all of its children have terminated
with a new process what could happen with address space?
the children process is duplicate of the parent process (it has the same program and data as the parent)
the child process has a new program loaded into it
A parent may terminate the execution of one of its children for a variety of different reasons, such as:
The child has exceeded its usage of some of the resources that it has been allocated
The task assigned to the child is no longer required
The parent is existing, and the operating system does not allow a child to continue if its parent terminates
is when a parent is terminated, and all of its children are terminated as well
A process that is terminated, but whose parents do not call wait is called a process. All processes transition to this state briefly but are often resolved once wait() is called by the parent
If a parent terminates before a child, it can not call wait(), so the child process becomes and . Linux and Unix solve this problem by assigning to be the new parent of a child process whose parent prematurely terminates.