OS 題庫3

3.21
剛創造出來時為new,running或者是waiting事件發生。ready則是等待被assigned to a processor


3.22

short-term是用來替CPU選擇new process,大概每100ms就執行一次。long-term控制degree of multiprogramming,選擇下個process的執行。long-term相較之下時間較為寬裕,大概好幾分鐘一次。

3.23
I/O-bound大部分時間都用來等待I/O。

3.24
當CPU要執行新process時,舊的process狀態必須保存。Contex of a process由這個process的process control block表示。切換process必須save state現有的process之後在state restore其他process。這個過程稱為context switch,也就是將old process的context存在他的PCB之中並且讀取新process的context並run。

3.25
他們都用來建立child process,
但是fork沒有parameters,CreateProcess有十個
fork建立的child process會繼承其parent的address space(?)
CreateProcess則需要指定address space。

Address space: 定址空間?

3.26
Socket class實作TCP
DatagramSocket實作UDP
MulticstSocket為DatagramSocket的subclass,這種socket可以一次傳給多個recipents。

3.27
Loopback即是IP address 127.0.0.1。當使用socket作為主從端的溝通時,可以讓主從端在同一台host上溝通。

3.28
跳過

3.29
marshalling把parameters包裝成可以透過網路傳輸的form。

3.30
這兩種方式用來確保remote procedure的執行。因為他很容易出錯。
at most once確保system執行message僅僅一次,透過checking the timestamp的方式。
exactly once則是一定要執行一次。

3.31
跳過

3.32
exec()會overwrite the process,所以fork()不會被執行。exec()的parameter中的program會執行。

3.33
Chrome中的每個tab都是獨立的renderer process,crash的時候只有那個tab會受影響。

3.34
如果parent沒有call wait()就停止,那child process就會變成orphan。
LINUX和UNIX會將init process指定為新的parent,而init會定期呼叫wait()。這會讓放在停止process上的資源可以重新分配利用。









留言