Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
90 Cards in this Set
- Front
- Back
difference between multiprogramming and multiprocessing? |
-multiprogramming is the ability to store multiple programs in memory at once so that they can be executed concurrently
-Multiprocessing is the use of two or more CPU's within a single computer system |
|
what are the motivations for developing multiprogramming and multiprocessing?
|
-multiprogramming to allow systems to manage several jobs at once
-multiprocessing to allow a system to execute more than one program at once |
|
what is the significance of MS-DOS?
|
-application development environment that encourages the development f thousands of application software packages
|
|
what is the significance of CTSS?
|
-Compatible Time-Sharing System
-developed by MIT -Designed to perform basic interactive computing tasks for individuals |
|
what is the significance of Multics?
|
-Multiplexed Information and Computing Services
-developed at MIT -incorporates virtual memory -first to use the term 'process' to describe a program in execution in the context of OS's. |
|
what is the significance of OS/360?
|
-IBM's OS created in 1964
-"360" refers to all points in a compass |
|
what is the significance of TSS?
|
-Time Sharing System
-developed at IBM -incorporates virtual memory -ran on the System/360 mainframes |
|
what is the significance of UNIX
|
-designers created a high-level programming language, C, to implement UNIX
|
|
what is the significance of Macintosh?
|
-created in 1984
-implemented GUI's for simpler use |
|
why is it impractical to use a virtual machine for a hard real-time system?
|
-hard real-time systems must perform tasks by hard deadlines, and the extra layer of software provided by the VM makes deadlines more difficult to meet
|
|
The GNU Public License promotes software that is free. How does the GPL provide such freedom?
|
-allows users to freely modify and redistribute software under the GPL license.
|
|
what are the advantages and disadvantages of communication between computers?
|
-advantages:world wide fast communication, global friendship
-disadvantages:spamming, virus, personal theft, pornography |
|
what is online?
|
state describing a computer that is turned on and directly connected to the network
|
|
what is real time?
|
system that attempts to service requests within a specified time period.
|
|
what is interactive computing?
|
software which accepts inputs from humans
|
|
what is timesharing?
|
OS that enables multiple simultaneous interactive users
|
|
how do middleware and Web services promote interoperability?
|
-middleware acts as a courier to pass messages between the Web server and the database simplifying communication between multiple different architectures.
|
|
which device(s) executes program instructions?
|
processor
|
|
which device(s) are not required for a computer to execute program instructions?
|
peripheral device, tertiary storage device
|
|
which device(s) are volatile storage medium?
|
memory, cache, and register
|
|
which device(s) are persistent storage medium?
|
hard disk, tertiary storage device
|
|
which device(s) set traces/wires that transmit data between hardware devices?
|
Bus
|
|
which device(s) are the lowest level of memory hierarchy that a processor can reference directly?
|
Memory (RAM)
|
|
what are the Core OS components?
|
FIMMP
-file system manager -I/O manager -Interprocess communication (IPC) manager -Memory manager -Process scheduler |
|
define monolithic architecture and describe features
|
-every component of the OS is contained in the kernel and can directly communicate with any other
-highly efficient bc of direct intercommunication between components -security is bad bc all OS code operates with unrestricted access to the computer's hardware and software |
|
define layered architecture and describe features
|
-groups components that perform similar functions into layers
-more modular than monolithic bc the implementation of each layer can be modified without requiring any modification to other layers -performance degrades bc a user's process may need to pass through many layer's before it is serviced |
|
define microkernel architecture and describe features
|
-provides only a small number of services in an attempt to keep the kernel small and scalable
-high degree of modularity making them extensible, portable, and scalable -increased level of intermodule communication that can degrade system performance |
|
Name the OS goals
|
-scalability (able to use resources as added)
-extensible (adapt to new technologies) -portable (able to operate on many hardware configs) -secure -interactive (respond quickly to user actions) -usable (serve a significant user base) |
|
distinguish among hardware, software, and firmware
|
-hardware: computer's physical devices
-software: applications programmed by a developer -firmware: executable instructions stored in persistent, often read-only, memory attached to a device |
|
sort memory from fastest to slowest memory
|
registers, LI Cache, L2 Cache, main memory (RAM). secondary storage, tertiary storage
|
|
relate the principle of least privileged to the concepts of user mode, kernel mode and privileged instructions.
|
-least privileged is user mode.
-kernel mode has access to all the machine's instruction set -privileged instructions are instructions not accessible in user mode |
|
explain triple buffering and explain a circumstance in which it will be useful
|
-In triple buffering the program has two back buffers and can immediately start drawing in the other one.
-synchronizing with the monitor frame rate |
|
machine language
|
-can be natively understood by the computer (binary)
|
|
assembly language
|
low-level language that represents basic computer operations as english-like abbreviations
|
|
high-level language
|
programming language that uses english-like identifiers and common mathematical notation to represent programs using fewer statements than AL
|
|
OO Programming language
|
style of programming that allows programmers to quickly build complex software systems by reusing components called objects
|
|
structured programming
|
disciplined approach to creating programs that are clear, correct, and easy to modify
|
|
briefly describe how a program written in a high-level language is prepared for execution.
|
(source code)->lexer-(tokens)->parser-(AST)->Intermediate code generator-(Low-level language)->Optimizer-(Low-level language)->code generator-(Machine Instructions)
|
|
what is microprogramming? why is the term 'firmware' appropriate for describing microcode that is part of a hardware device?
|
-microprogramming is the layer of programming below a computer's machine language.
-because microcode is simply firmware, it is written to implement machine-language and hardware operations |
|
why is a precise statement of security requirements critical to the determination of whether a given system is secure?
|
-bc it determines if the security mechanism is implemented
|
|
give three examples of sharing supported by the OS. For each, explain the protection mechanisms that are necessary to control the sharing.
|
network sharing-authentication
LAN-firewalls internet-antivirus software |
|
give several reasons why simple password protection is the most common authentication scheme in use today. discuss the weaknesses inherent in password protection schemes
|
-easiest to implement
-easy for users to memorize -unique to an idividual -weaknesses: users tend to choose passwords that are easy to remember. if passwords are difficult to remember, users are more inclined to write it down. |
|
why is the understanding of cryptography important to OS designers? list several areas within the OS in which the use of cryptography would improve security?
|
-so that the OS can be more secure
-electronic data transmission over public wires. |
|
why are denial-of-service attacks of such great concern to OS designers? List a few type of denial-of-service attacks. Why is it difficult to detect a distributed denial-of-service attack on a server?
|
-bc they are a major issue, especially with businesses.
-when an attacker infects several computers to gain unauthorized access to them to carry out the attack -it is difficult to detect bc they are not carried out from the attacker's computer |
|
what is a log file? what info might an OS deposit in a log file? how does a log act as a deterrent to those who would commit a security violation?
|
-a log file records info about system behavior
-info would be time at which the OS are requested and the name of the process that requests them -Intrusion detection systems (IDS) use log files to alert system admins of suspicious application and or system behaviors |
|
explain how a public-key cryptography systems provide an effective means of implementing digital signatures
|
-uses the Secure Hashing algorithms to uniquely identify a message. A digital signature authenticates the sender's identity and is difficult to forge.
|
|
what is the definition of a process
|
- a program in execution
-an asynchronous activity |
|
list 3 services provided by the OS for managing processes
|
-creating
-destroying -suspending -resuming -blocking -waking up -dispatching |
|
describe what happens during a process context-switch
|
-the process that is currently executing on the processor is suspended. the state is saved in the PCB in RAM for the current process. the state of the next process is read from its PCB in RAM and is loaded into the processors registers. The next process is then resumed to its old state and continues execution.
|
|
list five components of a PCB
|
-Process Identification Number (PID)
-Process state -Program counter -Scheduling priority -Credentials |
|
if system allowed a fork process to run, what consequence would occur
|
-the loop will repeatedly create new processes and at some point use up all available memory
|
|
if a process is in an infinite loop, then it will consume processor time for no reason. can an OS determine whether a process is in an infinite loop?
|
in general this is not possible bc you can not predict the running time of a program. therefore, you can not detect when the process should be ending and determine if its in an infinite loop. one possibility for some systems may be to have a timeout for processes.
|
|
why would it be more efficient to have threads of the same process to communicate with one another verses having threads of different processes communicate?
|
threads share memory and so communication can be done with memory reads and writes vs. using pipes and messaging that require intervention of the OS.
|
|
why are threads considered light-weight processes
|
-threads are the part of the process that maintains the execution of an instruction. Therefore threads can be concurrent tasks like a process, but do not require to creation overhead of creating a new PCB
|
|
Given an example of a program that you use everyday that may be multithreaded, and list at least 3 tasks that you think would be separate threads and why they would be separate threads.
|
Web Browser: when a page loads in a browser, the HTML file needs to be downloaded, each image file needs to be downloaded and rendered, each sound file needs to be downloaded and played, javascript and flash might need to be executed as well.
|
|
compare and contrast thread dispatching in kernel-level threads and in user-level threads
|
-in user-level threads, the OS dispatches dispatches the multithreaded process as a unit.
-in kernel-level threads, mappings require the OS to provide each user thread with a kernel thread that the OS can dispatch |
|
what is the difference between the zombie state and the dead state
|
-a task in the zombie state is not removed from the system so other threads can be notified of its termination.
-a task in the dead state may be immediately removed from the system |
|
name 3 ways a thread can terminate?
|
-completing execution
-raising a fatal exception -receiving a cancellation signal |
|
how do Linux fork and clone system calls differ?
|
-fork spawns a child task and allocates it to a copy of its parent's resources.
-clone specifies which resources it shares with the task it spawns. |
|
In Dekkers first solution, what property of the enterMutualExclusion and exitMutualExclusion primitives is violated.
|
-it enforces lock-step synchronization. this is where the threads take turns accessing the shared resources. this solution employs busy-waiting which wastes processor cycles.
|
|
what does mutual exclusion mean
|
-the cooperative understanding that access to shared resource will only be provided to one thread/process at a time.
|
|
In Dekker's second solution, first solution, what property of the enterMutualExclusion and exitMutualExclusion primitives is violated.
|
-mutual exclusion is not preserved. also exhibits busy waiting
|
|
describe busy waiting and explain why it is bad for performance of the OS
|
-where a loop condition must be repeadetly checked. This means the OS must allow the thread to use the CPU cycles to simply check a status, but not to do any of the threads actual work
|
|
explain why this is false: When several threads access shared info in main memory, mutual exclusion must be enforced to prevent the production of indeterministic results
|
-false bc it is possible that the threads will attempt to update the shared variable at different times, and the program will function correctly.
|
|
what is the real significance of Dekker's algorithm
|
-guarantees mutual exclusion while preventing deadlock and indefinite postponement.
|
|
Identify the key problems of the first four attempts at implementing mutual exclusion
|
-Version 1:Required T1 to go first and demanded strict alternation
-Version 2:Violated mutual exclusion. both threads could enter critical sections at once -Version 3: Enabled the two threads to deadlock so that neither would ever enter its critical section -Version 4:Allowed the possibility of two threads indefinitely postponing one another. |
|
consider a program where there are several threads and there is a shared list. would it be acceptable to have all threads read from the list simultaneously without updating its contents?
|
-yes because mutual exclusion is only required when an update to the shared memory location is being performed.
|
|
why is it important to execute a critical section as quickly as possible
|
if a thread spends too much time in its critical section, then it will delay the other threads and this will ultimately slow down the entire application
|
|
what would happen if a thread does not call enterMutualExclusion() before entering its critical section and accessing the shared memory locations?
|
-this will cause indeterministic results
|
|
what would happen if a thread completes its critical section and then does not call exitMutualExclusion()
|
-this will cause all threads to be permanently waiting to access their critical sections...deadlock
|
|
in Peterson's algorithm, what variable is the one that prevents indefinite postponement
|
the favoredThread
|
|
describe why an n-thread mutual exclusion approach like Lamports would be difficult when the threads are not on the same machine, but are in a distributed system on different machines
|
-the algorithm would require messaging to update shared data such as the ticket values. The delay attributed to messaging to update shared variables would impede the progress of the threads
|
|
what is a semaphore
|
-mutual exclusion abstraction that uses two atomic operations (P and V) to access a protected integer variable that determines if threads may enter their critical section
|
|
what is the major benefit of implementing semaphores in a kernel
|
-can avoid busy waiting
|
|
what is asynchronous concurrent threads
|
-threads that exist simultaneously but operate independently of one another.
|
|
what is critical section
|
section of code that performs operations on shared resources
|
|
what is deadlock
|
state of a thread when it cannot continue execution bc it is waiting for an event that will never occur
|
|
what is the primary reason to create standard thread interfaces such as Pthreads?
|
-allow applications to be portable
|
|
which threading model does the POSIX standard require?
|
does not require a specific implementation.
-can be implemented at user-level, kernel-level, or hybrid threads |
|
why should a thread be allowed to disable its cancellation signal
|
-bc it may leave data in an inconsistent state if it terminated prematurely
|
|
why is it inefficient for an application to specify a thread pool size that is larger than the maximum number of ready user threads at any point during the application's execution?
|
-if worker threads outnumber ready user threads, the system incurs overhead due to unnecessary thread creation and inefficient memory allocation
|
|
what is overhead
|
the processing time required by a device prior to the execution of a command
|
|
in what scenario are kernel-level threads more efficient than user-level threads
|
-if an application contains threads that block or that can perform their instructions in parallel
|
|
why is application software written for kernel-level threads less portable than software written for user-level threads
|
-because thery depend on a particular operating system's API
|
|
explain why user-level thread implementation promote portability
|
-they present an API to applications that is independent of the OS's API
|
|
how does the cancellation signal differ from the abort signal
|
-abort terminates immediately
-cacel may continue to exist until it unmasks the cancellation signal |
|
why does thread creation typically require fewer processor cycles than process creation
|
-thread creation requires that the OS initialize only resources that are local to the thread control.
|
|
how can a thread enter a dead state
|
-when it completes a task or when another thread terminates it
|
|
how are the waiting, blocked, and sleeping states similar and how are they different
|
-similar: threads in them can not use a processor even if one were available.
-a blocked cannot be dispatched bc it is waiting on an I/O operation that it requested -a waiting thread cannot be dispatched until it recieves an event from hardware or software -a sleeping thread cannot execute bc it has explicitly notified the system that is should not execute until its sleep interval expires |
|
what are the operations in threads and processes
|
-create
-exit -suspend -resume -sleep -wake |