iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 6
0
自我挑戰組

作業系統概論系列 第 6

DAY6 處理器概念(下)

緩衝區(Buffering)

  • 附加到訊息佇列的鏈結。
  • 有三種執行方式:
  1. Zero capacity:無訊息在佇列中。傳送者須等待接收者。
  2. Bounded capacity:訊息長度有限制。鏈結容量如果額滿,傳送者就需要等待。
  3. Unbounded capacity:訊息長度無限制。傳送者不需等待。

IPC系統-Mac

  • Mac系統是喜message為基礎,整個程式碼都是message。
  1. 在新增每個任務時,都會得到兩個mailbox--Kernel和Notify。
  2. 只有三個系統需要使用訊息做傳送:mag_send()、msg_receive()、msg_rpc()
  • 郵箱新增,需要透過port_allocate()
  • 如果郵箱容量額滿時,傳遞與接收是需要有彈性的運作:
  1. Wait indefinitely
  2. Wait at most n milliseconds
  3. Return immediately
  4. Temporarily cache a message

IPC系統-Windows

  • 訊息的傳送需要透過advanced local procedure call(LPC):
  1. 行程只能使用在同一個系統內。
  2. 溝通工作所允許的內容:客戶端傳送要求連接等。

Sockets

  • socket被定義為連接溝通的端點。
  • socket是IP位置上某個特別的port。
  • 溝通是處在一對sockets之間。

Sockets in Java

  • sockets有三種方法使用:
  1. Connection-oriented(TCP)
  2. Connecyionless(UDP)
  3. MulticastSocket calss

遠程呼叫過程

  • 系統呼叫在網路系統的行程之間。
  • 要進行資料交換的話,需要透過使用External Data Representation(XDL)。

Pipes

  • 允許兩個行程間溝通的管道。
  • 目前遇到的問題:
  1. 溝通是單向還是可以雙向?
  2. 在行程溝通間,是否存在著關係?
  3. 可以使用Pipes在網路上嗎?

Ordinary pipes

  • 無法新增存取外來的行程。
  • 父行程會新增pipe,然後使用此方法跟子形成溝通。
  • Windows稱這些pipes為「anonymous pipes」。

Named Pipes

  • 有命名的pipes更具有能力。
  • 是雙向溝通。
  • 行程溝通間不需要有父-子關係。
  • 多個行程可使用已命名的pipe去做溝通管道。
  • 提供UNIX和Windows系統使用。

上一篇
DAY5 處理器概念(中)
下一篇
DAY7 Threads(上)
系列文
作業系統概論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言