Download HW3 - UCF Computer Science - University of Central Florida

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Scheduling (computing) wikipedia , lookup

Stream processing wikipedia , lookup

Transcript
CS Division – EECS Department
University of Central Florida
CGS 3763 – Operating System Concepts
Spring 2013 – dcm
Homework 3 (100 points)
Due Wednesday, Wednesday February 27, 5 PM
A homework should be written in Word or Latex and should be Emailed to the TA
Bo Kang - [email protected])
Subject of the Email: First.Last student name - HW3
Problem 3.1
Define the concepts of modularity and layering.
a. List and then discuss the advantages of modularity in the design of a software
system. Are there any disadvanatages?
b. List and then discuss the advantages of layering in the design of a software system.
Are there any disadvanatages?
c. Are the two concepts related to one another? Explain your answer.
d. Give an example of a microkernel and explain what are the advantages of this
approach and how it is related to modularity and layering?
Problem 3.2
A network architecture is based on a protocol stack.
a. Define the concept of a communication protocol.
b. Discuss the function of each element of the Internet protocol stack.
c. Explain why this layered architecture is desirable and why it is feasible.
d. Why do we say that the Internet is based on hourglass network architecture?
e. Discuss the concepts of encapsulation and decapsulation.
Problem 3.3
The kernel of an operating system includes several processes that support Internet
communication.
a. Define the concepts of multiplexing and de-multiplexing in the context of kernel
implementation of a networking architecture.
b. Identify the kernel processes involved in network activities and discuss the function
of each one of them.
c. Discuss the concepts of ports and sockets and the relationship between them.
d. What type of data structures are used for the implementation of sockets?
Problem 3.4
Define the concepts of message passing and shared-memory communication.
a. Discuss the concepts of direct and indirect communication.
b. What type of communication primitives must be implemented by the kernel to
support message passing? Describe all information needed to send and receive a
message.
c. Discuss the semantics of blocking and non-blocking communication primitives and
synchronous versus asynchronous message passing.
Problem 3.5
List several client-server systems you are familiar with.
a. What are the advantages of the client-server paradigm?
b. What is a stateless-server?
c. What is a trusted intermediary?
d. Discuss the concepts of “pushing” and “pulling” a message to/from a trusted
intermediary.
e. Can the client-server model be used to allow processes to communicate using events
in a distributed system?
Problem 3.6
Discuss the similarities and dissimilarities of processes and threads.
a. What are the reasons for using threads rather than processes?
b. Is there a need for kernel support for threads? Justify your answer and discuss
several possible modes of interaction between user and kernel threads.
c. What is a thread library?
d. What are the methods to create Java threads?
e. How does a user specify the actual code to be run by a Java thread?