• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/90

Click to flip

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