1. Which situation is suitable to use message passing instead of shared-memory model for communication between processes? What are the pros and cons of using these two models?
Message passing is useful when smaller numbers of data need to be exchanged, because no conflicts need to be avoided. Shared memory processes use map memory.
system calls to gain access to regions of memory owned by other processes. Message passing advantages are OS will offer the extra support like Link Management, and the programmer burden not too heavy and OS burden heavy.The share memory advantage is programmer burden heavy and OS burden not too heavy and disadvantage is OS can only offer Share Memory space, and not offer any extra support.
2. What is “system calls?” Please specify the functions and the purposes of a system call in a computer system.
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware-related services, creation and execution of new processes, and communication with integral kernel services such as process scheduling. System calls provide an essential interface between a process and the operating system.
In most systems, system calls are possible to be made only from userspace processes, while in some systems, OS/360 and successors for example, privileged system code also issues system calls.
While a procedure call can usually be performed in a few machine instructions, a system call requires the computer to save its state, let the operating system take control of the CPU, have the operating system perform some function, have the operating system save its state, and then have the operating system give control of the CPU back to you. This concept is important, and will be seen time and time again in this class.
3.Please specify different ways for using the hardware configuration during the system generation (SYSGEN). What are the major differences between these different ways?
Used to modify a copy of the source code of the OS and have it re-compiled.
Used to create tables and modules from a precompiled library. The needed modules are linked together to form the generated OS.
Construct a system that is completely table driven. All the code is always part of the system, and selection occurs at execution time.
The size and generality of the generated system and the ease of modification as the hardware configuration changes.