• 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/36

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;

36 Cards in this Set

  • Front
  • Back
Examples of some User Goals?
Examples of some System Goals?
- User
Convenient to use
Easy to learn
Reliable
Safe
Fast

- System
Easy to design
Implement, and maintain
Flexible
Reliable
Error-free
Efficient
What are the 3 classifications of Multiprocessor Systems?
1. Loosely coupled, distributed multiprocessor or cluster
2. Functionally specialized processors
3. Tightly coupled multiprocessor
Define a Real-Time Systems?
Real-Time Systems
- The OS & scheduler most important component

- Correctness of system depends on the logical result of the computation & time at which the results are produced

- Tasks or processes react to events that take place in the outside world

- These events occur in “real time” - tasks must be able to keep up with them
Define a Hard Real-time task?
Define a Soft real-time task?
Hard Real-time task?
- Must meet its deadline
- Otherwise unacceptable damage or a fatal error to system

Soft real-time task?
- Associated deadline that is desirable but not mandatory
- Makes sense to schedule & complete task even if passed its deadline
5 characteristics of Real-Time Systems?
- Determinism
- Responsiveness
- User control
- Reliability
- Fail-soft operation
Define Host-Based Processing?
- Not a true client/server computing
 
- Mainframe environment - virtually all of the processing is done on a central host 

- User interface is via a dumb terminal
 
- User’s station generally limited to the role of a terminal emulator
- Not a true client/server computing

- Mainframe environment -processing done - central host

- UI via a dumb terminal

- User’s station limited to terminal emulator
Define Server-Based Processing ?
- Server does all the processing 

- Client provides a graphical UI
 
- user workstation is suited to providing a user-friendly UI - databases and applications easily maintained on central systems
- Server does all the processing

- Client provides a graphical UI

- Databases & applications maintained on central systems
Define Client-Based Processing ?
- All application processing is done at client 

- Data validation & database logic functions done at server 

- Sophisticated DB logic functions are housed on client side 

- This architecture most common client/server approach
- All application processing is done at client

- Data validation & database logic functions done at server

- Sophisticated DB logic functions are housed on client side

- This architecture most common client/server approach
Define Cooperative-Based Processing ?
- Application processing is performed in an optimized fashion 

- Complex to setup and maintain 

- Offers greater productivity and efficiency
- Application processing is performed in an optimized fashion

- Complex to setup and maintain

- Offers greater productivity and efficiency
What are the 4 Benefits of Clustering?
1. Absolute scalability
(Possible to create large clusters)

2. Incremental scalability
(Possible to add new systems to the cluster in small increments)

3. High availability
(Failure of one node in not critical to system)

4. Superior price/performance
(Possible to put together a cluster at much lower cost then single large machine)
Clustering methods benefits & Limitations Diagram
Passive standby
- Secondary server takes over if primary failure
- Easy to implement
- High cost

Active standby
- Secondary server is also used for processing tasks
- Reduced cost
- Increased complexity

Separate servers
- Separate servers have own disks
- High availability
- High overhead "Copying operations"

Servers connected to disks
- One server fails other disks taken over by other server
- Reduced network overhead
- Requires RAID

Servers share disks
- Multi-servers share access to disks
- Low overhead - reduced downtime
- Requires lock manager software RAID
What are the two approaches to Developing an Embedded OS?
1. Take an existing OS adapt it for embedded applications

2. Design & implement an OS intended solely for embedded use
What are the 3 points that can be added to an existing commercial OS so that it can be used for an embedded system?
- Real time capability

- Streamlining operation

- Adding necessary functionality
What are the advantages and disadvantages in adapting an Existing OS?
- Advantages - familiar IU

- Disadvantages - not optimized for real-time & embedded applications
What are the typical characteristics of a purpose-built embedded OS?
1. Fast & lightweight process or thread switch
2. Small Size
3. Scheduler policy is in real-time
4. Quick response to interrupts
5. Minimizes intervals when interrupts are disabled
6. Accumulate data fast rate
List the characteristics of Embedded OS?
- Real-time operation
- Reactive operation
- Configurability
- I/O device flexibility
- Streamlined protection mechanisms from external Input
- never ignores core task
- Direct use of interrupts
Name two embedded OS's?
- eCOS
- TinyOS
The Race Condition
Occurs when - Multiple processes or threads read and write data items

- Final result depends on the order of execution of the processes

- Output depends on who finishes the race last.
Process interaction is classified on the basis of the degree to which they are aware of each other's existence. List 3 possible degrees of awareness & the consequences of each?
From Diagram - Process interaction

1. Process unaware of each other
- Mutual exclusion
- Deadlock
- Starvation

2. Process indirectly aware of each other (Shared objects)
- Mutual exclusion
- Deadlock
- Starvation
- Data coherence

3. Process indirectly aware of each other (Must have communication)
- Deadlock
- Starvation
What are the 3 main control problems with regard to processes that are in competition for resources ?
1. Need for Mutual Exclusion
- Two or more processes require access to single non-share-able resource

- Such a resource is call "Critical resource" That portion of the program that uses it - "Critical section"

- OS may not understand & enforce the restriction

2. Deadlock
- Two processes waiting for the same resources

- Neither will release resource that it already owns until it has acquired the other resource and performed the function requiring both resources

- Two processes are deadlocked

3. Starvation
- The OS may grant access of resources to a number of processes while neglecting another
What are the requirements for Mutual Exclusion?
1. A process must not be delayed access to a critical section when there is no other process using it

2. No assumptions are made about relative process speeds or number of processes

3. A process remains inside its critical section for a finite time only
Process Interaction
1. When processes interact with one another 2 fundamental requirements must be satisfied:-synchronization and communication.

2. Message Passing is one solution to the second requirement

Added bonus: It works with shared memory and with distributed systems
In concurrent programming what is a 'critical section' of code?
A critical section is a piece of code that accesses a shared resource
Spinlocks
- Most common technique for protecting critical section in Linux

- Can only be required by one thread at a time

- Built on an integer location in memory, checked by each thread before it enters critical section

- Wait time for acquiring lock is very short
Disadvantages of Spinlocks
Locked out threads continue to execute in a busy-waiting mode
3 types of kernel Semaphores?
- Binary

- Counting

- Reader-writer
In relation to process synchronization explain the following terms?

- Semaphores
- Race Condition
- Monitors
- Semaphores
An integer value used for signalling among processes

Three operations (That maybe performed) - Initialize, Decrement & Increment

- Race Condition
Occurs when - Multiple processes or threads read and write data items

Final result depends on the order of execution of the processes
Output depends on who finishes the race last

- Monitors
A programming language construct - provides functionality to that of semaphores & that is easier to control (Implemented in Java)
What are the 3 types of process scheduling queues?
- Job queue
- Ready queues
- Device queue

- Processes migrate among the various queues
Explain the difference between direct & indirect communication as used in inter-process messaging?
- Direct Communication
Process must name each other explicitly
Send p (send message)
Send q (receive massage)

Links established automatically
Link is associated with excatally one pair of communicating processes
Between each pair - one link
Link unidirectional usually bi-directional

- Indirect Communication
Massages are directed & received from mailboxes (also called ports)

Links - share common mailbox
Link - associated with many process
Process may share communication links
Link unidirectional or bi-directional
Describe the difference between I/O bound processes & CPU bound processes
- I/O-bound process
More time doing I/O than computations
Many short CPU bursts

- CPU-bound process
More time doing computations
Few very long CPU bursts
What is a Remote Method Invocation (RMI) as used in Java?
- Is a Java mechanism

- Allows Java program on one machine to invoke a method on a remote object.
Define a remote procedure call in client server communication?
- Allows programs on different machines to interact using simple procedure call/return semantics

- Used for access to remote services

- Common method for encapsulating communication in distributed system
Define a socket in client server communication?
A socket is defined as an endpoint for communication.
What are the advantages of cooperating processes?
- Info sharing
- Computation sharing
- Modularity
- Convenience
Describe the operation of the "message system" in inter-process communication?
- Processes communicate with each other without resorting to shared variables
List 4 benefits of using threads?
- Application can be a set of threads that cooperate & execute concurrently in same address space

- Uni-processor threads can be used as a program structuring aid & overlap I/O with processing

- Multiprocessor system threads can be used to exploit parallelism in an application

- Gains in performance in multiprocessor systems