多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 操作系統概念學習筆記 6 系統調用

操作系統概念學習筆記 6 系統調用

來源:程序員人生   發布時間:2015-05-13 07:58:20 閱讀次數:4246次

操作系統概念學習筆記 6

系統調用



系統調用

系統調用(system call),通經常使用c或c++編寫,對底層任務(如需直接訪問硬件)可能以匯編語言指令的情勢提供。

1個系統調用的例子:
編寫1個從1個文件讀取數據并復制到另外一個文件的簡單程序,則需要以下系統調用序列:

獲得輸入文件名:

  • 屏幕輸入提示
  • 接收輸入

獲得輸出文件名:

  • 屏幕輸入提示
  • 接收輸入

打開輸入文件:

  • 如果文件不存在,放棄

loop:

  • 讀取輸入文件
  • 寫入輸出文件

直到讀取失敗
關閉輸出文件
將完成信息輸出到屏幕
正常結束

但是, 1般程序開發人員根據利用程序接口(API)設計程序,有3種經常使用的API:

1.適用于windows系統的win32 API

2.適用于POSIX系統的POSIX API(包括UNIX、Linux 和Mac OS X 版本)

3.設計運行于java虛擬機程序的java API

在后臺,組成API的函數通常為利用程序員調用實際的系統調用。

向操作系統傳遞參數有3種方法

  1. 最簡單的是通過寄存器來傳遞參數

  2. 不過有時參數數量會比寄存器多。這時候,這些參數通常存在內存的塊和表中,并將塊的地址通過寄存器來傳遞。linux采取這樣的方法。

  3. 參數還可壓入堆棧中,并通過操作系統彈出。

系統調用類型

系統調用大致可分5類:進程控制、文件管理、、裝備管理、信息保護、通訊

  • 進程控制
    • 結束,放棄
    • 裝入履行
    • 創建進程,終止進程
    • 獲得進程屬性,設置進程屬性
    • 等待時間
    • 等待事件,喚醒事件
    • 分配與釋放內存
  • 文件管理
    • 創建文件,刪除文件
    • 打開,關閉
    • 讀,寫,重定位
    • 獲得文件屬性,設置文件屬性
  • 裝備管理
    • 要求裝備,釋放裝備
    • 讀,寫,重定位
    • 獲得裝備屬性,設置裝備屬性
    • 邏輯連接或斷開裝備
  • 信息保護
    • 讀取時間和日期,設置時間或日期
    • 讀取系統數據,設置系統數據
    • 讀取進程,文件或裝備屬性
    • 設置進程,文件或這杯屬性
  • 通訊
    • 創建,刪除通訊系統
    • 發送,接受消息
    • 傳遞狀態消息
    • 鏈接或斷開遠程裝備

進程控制

運行程序需要能正常或非正常地中斷其履行(end或abort)

如果1個系統調用被用來非正常的中斷履行程序,或程序運行碰到問題引發毛病圈套,那末可能會有內存信息轉儲并產生1個毛病信息。內存信息轉儲通常寫到磁盤上,并被調試器(幫助程序員發現和檢查毛病的系統程序)檢查和肯定問題緣由。操作系統必須將控制權轉交給命令解釋器。命令解釋器緊接著讀取下1個命令。

對交互系統:
命令解釋器簡單的讀取下1個命令,由于假定用戶會采取適合的命令處理毛病

對GUI系統:
1個彈出窗口提示毛病并提個建議

對批處理系統:
命令解釋器終止全部作業并繼續下1個作業。出現毛病時,有的系統允許控制卡指出1個具體的恢復動作。控制卡是1個批處理概念,他是1個管理進程履行的命令。可定義1個毛病級別。更加嚴重的毛病可用更高級的毛病參數來表示。命令解釋器和下1個程序能利用毛病級別自動決定下1個動作。

履行1個程序或作業可能需要裝入另外一個程序。這1點允許命令解釋器來履行1個程序,該命令可通過用戶命令,鼠標單機和批處理命令來表示。當裝入程序終止時:

如果新程序終止時控制權返回到現有程序,那末必須保存現有程序的內存映像。因此,實際上建立1個機制以便1個程序調用另外一個程序。如果兩個程序并發繼續,那末創建了1個新作業和進程以便多道履行。有的系統調用專門用于這1目的(create process 或 submit job)

如果創建新作業和進程,那末應當能夠控制他的履行。這類控制要求能決定和重置進程或作業的屬性,包括優先級、最大允許履行時間等。必要時也要能終止它。

另外一組系統調用有助于調試程序,許多系統提供轉儲內存信息的系統調用,這有助于調試程序,程序trace在履行時能列出所用的每條履行的指令,但是只有少數幾類系統提供。

許多操作系統提供時間表來表示1個程序在某個位置履行的時間。時間表要求具有跟蹤功能或定時 時間中斷。每次定時中斷,會記錄計數器的值。

文件管理

經常使用的文件管理系統調用:

首先能創建和刪除文件。每一個系統調用需要文件名,可能還會需要1些文件屬性。創建文件滯后,就需要打開并使用,也可能需要讀,寫,重定位,最后需要關閉文件。

使用目錄來組織文件系統中的文件,目錄也需要相同的操作。

另外,還最少需要讀取文件屬性和設置文件屬性,有的操作系統提供更多調用,如文件移動和復制。

其余的,1部份可能提供采取代碼或系統調用完成這些操作的API,另外一部份可能僅提供完成這些任務的系統程序。

如果系統程序被其他程序所調用,則其中每個軍可以被其他系統調用視為1個API

裝備管理

程序在履行時需要用到1些資源才能繼續運行,否則,程序必須等待可用的足夠多的資源。

操作系統控制的不同資源可當作裝備看待,這些裝備有些是物理裝備(磁帶),而其他可當作抽象或虛擬的裝備(如文件)。如果系統有多個用戶,那末用戶必須要求裝備以確保能獨自使用它。在使用完裝備以后,用戶需要釋放它。

1旦要求了裝備(并且得到裝備以后),就可以猶如對待文件1樣對裝備進行讀,寫,重定位。I/O與文件非常類似,以致于許多操作系統(如UNIX)將這二者合并為文件-裝備結構。

信息保護

許多系統調用用來在用戶程序和操作系統間傳遞信息,調用返回的信息多是系統版本、空閑內存、進程信息等

另外,操作系統保護所有進程的信息,有些操作系統調用可訪問這些信息。

通訊

有兩種模型:

消息傳遞模型和同享內存模型。
消息傳遞模型,通訊進程彼此交換消息來交換信息。

同享內存模型,進程使用 shared memory create 和 shared memory attach系統調用來取得其他進程所具有的內存區域的訪問權。

系統程序

計算機的邏輯層次中,最底層是硬件,上面是操作系統,接著是系統程序,最后是利用程序。

系統程序提供了1個方便的環境,以開發程序和履行程序。其中1小部份唆使系統調用的簡單接口沒其他多是相當復雜的。
它們可分為:

文件管理、狀態信息、文件修改、程序語言支持、程序裝入和履行、通訊

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久久精品久久久久久久久久久 | 日本亚洲欧美在线 | 亚洲欧洲日产国码二区在线 | 欧美影院一区二区三区 | 日本xxxxxbbbbb精品 | 亚洲综合网址 | 国内成人免费视频 | 成人免费视频一区 | 国产免费资源高清小视频在线观看 | 久久精品国产999久久久 | 亚洲成a人片在线观看精品 亚洲成a人片在线观看尤物 | 亚洲精品国产不卡在线观看 | 欧美不卡视频在线 | 午夜影院在线免费观看 | 牛和人交vvideos欧美 | 中文字幕亚洲欧美日韩不卡 | 久久99精品国产99久久6男男 | 第一页在线 | 日韩高清专区 | 好大好爽好舒服 | 中文字幕第7页 | www国产永久免费视频看看 | 午夜久久网 | 精品视频一区二区三区四区 | 日韩亚洲一区中文字幕在线 | 日本成人在线网站 | 久久一| 国产h视频在线观看网站免费 | 殴美xxx| 免费观看亚洲 | 日韩福利在线视频 | 黑人极品巨大videoshd | 亚洲天堂aa| 中文字幕亚洲综合精品一区 | 97影院2| 亚洲精品欧美精品日韩精品 | 免费尤物视频 | 日韩城人网站 | 欧美性视频网站 | 激情影院在线视频永久观看 | 亚洲欧美日本韩国 |