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;
122 Cards in this Set
- Front
- Back
what is an operating system?
|
software that manages system resources to provide services that allow applications to execute properly
|
|
(T/F) Operating systems manage only hardware
|
false. they manage applications and other software abstractions such as virtual machines
|
|
what are the primary purposes of an operating system
|
to enable applications to interact with a computer's hardware and to manage a system's hardware and software resources
|
|
why were assembly languages developed
|
to speed up programming process. they enabled programmers t specify instructions as English-like abbreviations that was easier for humans to work with than machine-language instructions
|
|
what limited the size and capabilities of programs in the 1950's
|
the entire program had to be loaded into memory to execute
|
|
how did interactive computing and its improvement in turnaround time increase programmer productivity
|
the time between submission of a job and the return of its results was reduced from hours or days to minutes or even seconds.
|
|
what new concepts did TSS, Multics, and CP/CMS all incorporate? why was it so helpful to programmers
|
TSS, Multics, and CP/CMS all incorporated virtual memory. Virtual memory allows applications access to more memory than is physically available on the system. this allows programmers t develop larger, more powerful applications. also virtual memory systems remove much of the memory management burden from the programmer
|
|
what developments in the 1970s improved communication between computer systems
|
the DoD's TCP/IP standards became widely used in network communications. primarily in university and military computing environments. Also, Xerox's PARC developed the Ethernet standard, which made relatively high-speed local area networks (LAN) practical and economical.
|
|
what new problem was introduced by the increased communication between computers? How was the problem addressed?
|
security problems because data was sent over vulnerable communication lines. Encryption was employed to make data unreadable to anyone other than the intended recipient.
|
|
what aspect of personal computers, popularized by the apple macintosh, made them especially easy to learn and use?
|
GUI's.
|
|
(T/F) A server cannot be a client
|
false. a computer can be a client and a server.
|
|
how did the ARPAnet differ from traditional computer networks? what was its primary benefit?
|
the ARPAnet was decentralized, so the network continued to be able to pass information even if portions of the network failed. the benefit was its capability for quick and easy communication via email.
|
|
what creation did Berners-Lee develop to facilitate data sharing over the internet?
|
Berners-Lee developed the HyperText Markup Language (HTML) and the Hypertext Transfer Protcol (HTTP), making possible the World Wide Web
|
|
how did object-oriented technology affect operating systems
|
allow reuse of objects when developing new components.
|
|
what are some benefits of open-source development
|
can be viewed and modified by anyone in the software development community. greater chance that bugs will be fixed bc ppl constantly test, debug, and use the software. also users and organizations are able to modify a program to meet their particular needs.
|
|
what technologies can be used to bridge the gap between different operating systems? how would these technologies make it possible to execute the same applications on multiple platforms
|
virtual machines and OS emulators.
|
|
why is distributed computing useful for computations performed by mobile devices
|
because it allows mobile devices to delegate jobs to other machines with more resources.
|
|
what type of system would a temperature monitor in a nuclear power plant be described as?
|
a hard real-time system.
|
|
describe the advantages and disadvantages of virtual machines
|
promote portability by enabling software to run on multiple platform, but they tend to be less efficient than the real machines because VM must execute software instructions that simulate hardware operations.
|
|
Name the OS components
|
1. process scheduler
2. memory manager 3. I/O manager 4. interprocess communication manager (IPC) 5. file system manager |
|
I/O manager
|
write to disk
|
|
processor scheduler
|
determines which process will run next
|
|
memory manager
|
determines where in memory a new process should be placed
|
|
file system manager
|
organizes files on disk
|
|
interprocess communication (IPC) manager
|
enable one process to send data to another
|
|
why is it dangerous to allow users to perform read or write operations to any region of disk at will
|
users could accidentally or maliciously overwrite critical data or read sensitive information without authorization
|
|
what are the OS goals
|
1. scalability
2. extensibility 3. portability 4. security 5. interactivity 6. usability |
|
how does device driver support contribute to an OS extensibility
|
enables developer to add support for hardware that did not exist when the OS was designed.
|
|
what is the defining characteristics of a monolithic OS
|
every component of the OS is contained in the kernel
|
|
why do monolithic OS tend to be efficient? what is a key weakness of monolithic kernels
|
efficient bc few calls cross from user space to kernel space. BC all OS code in monolithic kernels operates with unrestricted access to the computer's hardware and software, these systems are particularly susceptible to damage from errant code.
|
|
how are layered OS more modular than monolithic OS.
|
in layered OS, implementation and interface are separate for each layer. this allows each layer to be tested and debugged separately. also enables designers to change each layer's implementation without needing to modify the other layers.
|
|
why do layered OS tend to be less efficient than monolithic OS
|
in layered OS, several calls may be required to communicate between layers, whereas this overhead does not exist in monolithic kernels.
|
|
what is the difference between a purely layered architecture and a microkernel architecture?
|
a layered architecture enables communication exclusively between OS components in adjacent layers. a microkernel architecture enables communication between all OS components via the microkernel.
|
|
what is the major difference between networked and distributed OS
|
a networked OS controls one computer but cooperates with other computers on the network. in a distributed OS, one OS controls many computers in a network.
|
|
what is the primary advantage of a distributed OS?
|
the primary advantage is that processes do not need to know the locations of the resources they use, which simplifies applications programming.
|
|
List some common hardware and software resources managed by OS
|
-processors, memory, secondary storage, processes, threads, files, and databases
|
|
what is the primary function of a mainboard
|
serves as the backbone for communication between hardware components, allowing them to communicate via the electrical connections on the board.
|
|
why is the BIOS crucial to computer systems
|
performs basic hardware initialization and management and loads the initial component of the OS into memory. the BIOS also provides instructions that enable the OS to communicate with system hardware
|
|
Differentiate between a CPU and a coprocessor. how might a system benefit from multiple CPU's? how might a system benefit from multiple coprocessors
|
a CPU executes machine-language instructions. a coprocressor is optimized to perform special-purpose instructions. Multiple CPU's would allow a system ti execute more than one program at once. multiple coprocessors could improve performances by performing processing in parallel with a CPU
|
|
What aspects of a system does a processor architecture specify
|
a CPU's architecture specifies the computer's instruction set, virtual memory support, and interrupt structure.
|
|
why is access to registers memory faster than access to any other type of memory, including L1 cache?
|
registers are hard-wired to the processor circuitry and physically located near the execution units
|
|
(T/F) All components of a system operate at the same clock speed
|
false. devices usually use a multiplier or a divider that defines the device's speed relative to the speed of the frontside bus.
|
|
what problems arises if one component on a bus has an extremely high multiplier and another component on the same bus has an extremely high divider
|
bottlenecks could occur, bc a component with a high divider will operate at a much slower speed than a device with a high multiplier. a high multiplier device that relies on information from a high-divider device will be made to wait.
|
|
compare main memory to disk in terms of access time, capacity, and volatility.
|
access time for main memory are much smaller than those for disk. disks typically have larger capacities than main memory bc the cost per unit stoarge for disks is less than for main memory. main memory is typically volatile whild disks store data persistently.
|
|
why is main memory called random access memory
|
processes can access main memory locations in any order and at about the same speed, regardless of location
|
|
why is accessing data stored on disk slower than accessing data in main memory
|
main memory can be accessed by electrical signals alone, but disks require mechanical movements to move the read/write head, rotational latency as the disk spins to move the requested data to the head and transfer time as the data passes by the head.
|
|
compare and contrast CDs and DVDs
|
CDs and DVDs are the same size and are accessed by laser light, but DVDs store data in multiple layers using thinner tracks and thus have higher capacity
|
|
How does FSB speed affect system performance
|
the FSB determines how much data can be transferred between processors and main memory per cycle. If a processor generates requests for more data than can be transferred per cycle, system performance will decrease bc that processor may need to wait until its requested transfer complete.
|
|
how do controllers simplify access to shared buses
|
controllers prioritize multiple simultaneous requests to access a bus so that devices do not interfere with one another
|
|
why is DMA more efficient than PIO
|
in a system that uses PIO, a processor waits idly for each memory transfer to complete. DMA frees processors from performing the work necessary to transfer information between main memory and I/O devices which enables the processor to execute instructions instead
|
|
how does first-party DMA (direct memory access) differ from third-party DMA?
|
third party DMA requires a controller to manage access to the bus. first party DMA enables devices to take control of the bus without additional hardware
|
|
what is the main difference between a peripheral device, such as a printer, and a device such as a processor?
|
peripheral devices do not require for a computer to execute software instructions. in contrast, all computers need at least one processor to run.
|
|
compare and contrast USB and FireWire
|
both provide large bandwidths and powered connections to devices. FireWire has a greater capacity than USB and enables devices to communicate without being attached to a computer.
|
|
what is the rationale for implementing multiple execution states?
|
provides protection by preventing most software from maliciously or accidently damaging the system and accessing resources without authorization.
|
|
how do exceptions differ from other types of interrupts?
|
exceptions indicate that an error has occured and invoke the OS to determine how to respond. the OS may then decide to do nothing or terminate the process. If the OS encounters a serious error that prevents it from executing properly, it may restart the computer
|
|
how does an interval timer prevent one process from monpolizing a processor
|
the timer generates interrupts periodically. the processor responds to each interrupt by invoking the OS, which can then assign a different process to a processor
|
|
why should the OS prevent users from accessing the boot selector
|
if users could access the boot sector, they could accidently or maliciously modify the OS code, making the system unusable or enabling an attacker to gain control of the system.
|
|
why is it necessary for a plug-and-play device to uniquely identify itself to the OS
|
before an OS can configure and make a device available to users, it must determine the resource needs that are unique to the device.
|
|
why is power management particularly important for mobile devices
|
mobile devices rely on battery power managing a device's power consumption can improve battery life
|
|
how does caching improve a system performance
|
caches improve performance by placing in fast storage information that a process is likely to reference soon. processes can reference data and instructions from a cache much faster than from main memory.
|
|
why do buffers generally not improve performance if one device or process produces data significantly faster than it is consumed
|
if the producing entity is much faster than the consuming entity, the buffer would quickly fill, then the relationship would be limited by the relatively slow speed of the consuming entity
|
|
(T/F) Computers typically execute assembly code directly
|
false. assemblers translate assembly code into machine-language code before the code can execute
|
|
is software written in machine language portable?
|
no. machine languages are machine dependent, so software written in machine language executes only on machines of the same type
|
|
discuss the benefits of high-level languages over assembly languages
|
1. require fewer instructions than assembly
2. easier bc closer to english language and mathematical notations |
|
why are programs compiled to byte code more portable than those compiled to machine code
|
bytecode is compiled to execute on a virtual machine that can be installed on many different machines
|
|
list these languages as structured or OO:
1. C# 2. C 3. Java 4. C++ |
1. OO
2. Structured 3. OO 4. OO |
|
what are some benefits of OOP
|
1. easier to understand, debug, and modify
2. focuses on creating reusable software components |
|
what problems in early software development did structured programming languages address
|
developers did not have a systemic approach to constructing complex programs, resulting in high costs, missed deadlines, and unreliable products. structure programming filled the need for a disciplined approach to software development.
|
|
how did the Ada programming language differ from other structured programming languages such as Pascal and C
|
Ada was designed to facilitate concurrent programming
|
|
how is the central focus of OO programming different from that of structured programming
|
OO focuses on manipulating objects, whereas procedural programming focuses on actions
|
|
how do objects facilitate modifications to existing software
|
objects hide much of the detail of an overall application, allowing programmers to focus on the big picture. programmers can focus on modifying one object without worrying about the effect on another object
|
|
why must processes issue system calls to request OS services
|
to protect the system, tje OS cannot allow processes to access the S or privileged instructions directly. instead the services that an OS can provide to processes are packaged into API's.
|
|
how does the POSIX (portable operating system interface) attempt to improve application portability
|
POSIX specifies a standard API for UNIX-based systems.
|
|
what is the difference between compiling and assembling
|
the assembly process simply translates assembly-language code into machine-language code and may also optimize code.
|
|
Could a java program run directly on a physical machine instead of a virtual machine
|
yes by using a compiler that translates java source code or byte code into the corresponding machine language
|
|
how does linking facilitate the development of large programs built by many developers
|
linking permits programs to be written as many separate modules.
|
|
what is one possible drawback of using a dynamic linker. what is a benefit
|
-if a library cannot be found during execution, an executing program will be forced to terminate, possibly losing all of the work performed up to that point
- a benefit is that programs that are dynamically linked do not have to be relinked when a library changes |
|
how might absolute loading limit a system's degree of multiprogramming
|
-two programs that specify overlapping addresses cannot execute at the same time, because only one can be resident at the same location in memory at once
|
|
how does dynamic loading improve a systems degree of multiprogramming
|
modules are loaded as needed, so memory contains only the modules that are used.
|
|
(T/F) there are no instructions smaller than machine-language instructions
|
false. microcode specifies a layer of programming below a processor's machine language
|
|
describe the role of firmware in a computer system
|
firmware specifies simple, fundamental instructions necessary to implement machine-language instructions.
|
|
why is a process's address space divided into multiple regions
|
each region of an address space typically contains information that is accessed in a similar way. processes read and write data in any order. separating a processes address space into different regions enables the OS to enforce such access rules.
|
|
(T/F) the terms process and programs are synonymous
|
false. a process is a program in execution; a program is an inanimate entity
|
|
(T/F) at any given time, only one process can be executing instructions on a computer
|
false. on a multiprocessor computer, there can be as many processes executing instructions as there are processors
|
|
a process enters the blocked state when it is waiting for an event to occur. name several events that might cause a process to enter a blocked state
|
-if it issues a requestfor data located on a high-latency device, such as a hard disk or requests a resource that is allocated to another process and is currently unavailable
-block until an event occurs (user pressing a key) |
|
what is the difference between processes that are awake and those that are asleep
|
-awake is in active contention for a processor
-asleep cannot use a processor even if one becomes available |
|
what is the purpose of the process table
|
-enables OS to locate each process's PCB (process control block)
|
|
(T/F) A process may have zero parent processes
|
true. the first process that is created, init, does not have a parent.
|
|
why is it advantageous to create a hierarchy of processes as opposed to a linked list
|
-allows the OS to track parent/child relationships. simplifies operations such as locating all the child processes of a particular parent
|
|
in what three ways can a process get t o the suspended ready state
|
-if it is suspended from running state
-if it is suspended from the ready state by a running process -if it is suspended-blocked state and the I/O completion or event completion it is waiting for occurs |
|
in what scenario is it best to suspend a process rather than to abort it
|
when a user or system administrator is suspicious of a process's behavior but does not want to lose the work performed by the process.
|
|
from where does the OS load the execution context for the process to be dispatched during a context switch
|
stored in the PCB
|
|
why should an OS minimize the time required to perform a context switch
|
during a context switch, a processor cannot perform instructions on behalf of processes, which can reduce throughput
|
|
what does it mean for an interrupt to be synchronous
|
occurs due to software execution
|
|
what is an alternative interrupt and why is it rarely used
|
a system can perform polling, in which the processor periodically checks the status of devices.
it is rarely used bc it creates significant overhead when the processor polls devices whose status has not changed |
|
why are interrupt handlers generally not stored in linked lists
|
the system must be process each interrupt quickly. traversing a linked list could take a long time. therefore most systems use interrupt vector (an array) to quickly access the location of an interrupt handler
|
|
why is the process's execution context saved to memory while the interrupt handler executes
|
interrupt handler can overwrite the process's registers if the process's execution context is not saved in memory
|
|
what is the major drawback of using signals for IPC
|
signals do not support data exchange between two processes
|
|
what are the three ways in which a process can respond to a signal
|
1. catch
2. ignore 3. mask |
|
why do distributed systems rely on message passing instead of signals
|
-signals are architecture specific
-signals do not allow processes to transmit data |
|
when a process performs a blocking send, it must recieve acknowledgement message to unblock. what problem might result from this scheme, and how can it be avoided
|
-the sender may never receive acknowledgement message.
-this can be remedied by timeout mechanism |
|
why can a parent and its child share the parent's text segment after a fork system call
|
-the text segment contains instructions that cannot be modified by either processes, meaning that bth the parent and child process will execute the same instructions.
|
|
why must a process use IPC to share data with other processes
|
the OS does not allow unrelated processes to share the data segment of their address spaces. therefore the OS must provide some mechanism to make data from one process available to another
|
|
how do programmers manage to write multithreaded code in C and C++
|
by using specific code libraries that help with multithreading
|
|
what advantageous would you get from running a multithreaded application on a multiprocessor system over running it on a uniprocessor system
|
the multithreads of the application that perform parallel tasks could run truly simultaneously on separate processors, speeding application execution.
|
|
why is it difficult to write portable multithreaded applications
|
there is no standard threading library that is implemented on all platforms
|
|
how does improved software design help to make multithreaded applications execute faster
|
many applications contain code that can execute independently of one another. when these segments of code are assigned to seperate threads, they can execute on multiple processors simultaneously
|
|
why is it typically more effecient for threads of the same process to communicate than it is for separate processes to communicate
|
they can communicate via shared address space and do not have to rely on IPC mechanisms that invoke the kernel
|
|
how can a thread enter the dead state
|
when it completes its task or when anothe thread terminates it
|
|
how are the waiting, blocked, and sleeping states similar. how are they different
|
-similar in that the threads in them could use a processor, even if one wer available.
-a blocked thread cannot be dispatched bc it is waiting on an I/O request -a waiting thread cannot be dispatched until it recieves an event from hardware or software that the OS does not initiate - a sleeping thread cannot execute bc it has explicitly notified the system that it shuld not execute until its sleep interval expires |
|
how does the cancellation signal differ from the abort signal
|
-abort gets terminated immediately.
-when it is cancelled it 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 intialize only the resources that are local to the thread controle
|
|
explain why user-level thread implementation promote portability
|
-user-level threads present an API to applications that is independent f the OS operating systems API.
|
|
in what scenarios are kernel-level threads more effecient than user lever threads
|
if an application contains threads that block or that can perform their instructions in parallel, kernel-level threads are more efficient that user-level threads
|
|
why is synchrnous signal delivery simpler than asynchronous signal delivery
|
-a synchronous signal is generated due to a process or thread that is tjat os currently executing on a processor. a OS can eaily identify the reciepientof the signal
|
|
name three ways a thread can terminate
|
-completing executing
-raising a fatal exception or recieving cancellation |
|
why should a thread be allowed to disable its cancellation
|
a thread that modifies a value in its process's shared address space
|
|
difference between the zombie state and the dead state
|
-zombie, tasks are not removed from the system so other threads can be notified of its termination
-dead state may be immediately removed from the system |
|
what purpose does fibers serve in windows XP
|
-exist to improve capabilities with applications and schedule their own threads
|
|
how does a primary thread differ from other threads
|
when a primary thread returns, the process to which it belongs terminated
|
|
why should programmers name java threads
|
allows the programmer to identify each thread when debugging
|
|
how does java allow programmers to create threads from objects that do not extend thread
|
implement the Runnable interface so that objects of the class can control the life cycle of threads with their run methods
|