Linux操做系統及調用接口

Linux操做系統包含如下各子系統:linux

 

 

 

系統調用子系統:操做系統的功能調用同一入口;緩存

進程管理子系統:對執行程序進行生命週期和資源管理;網絡

內存管理子系統:對系統的內存進行管理、分配、回收、隔離;數據結構

文件子系統    :系統內部一切皆文件,對文件進行管理;異步

設備子系統    :對輸入、輸出設備進行管理;函數

網絡子系統    :負責對外交流,網絡協議棧和收發網絡包。spa

內核結構圖以下:操作系統

 

 

 

1.虛擬文件系統VFS

  位於用戶空間和內核具體文件系統之間,是各類具體的文件系統提取出來的抽象層,爲用戶提供標準的文件系統調用接口。對具體的文件系統的數據結構進行抽象,以統一的接口進行處理調用(readopen)。blog

 

 

 

1. 系統IO操做(接口)

包括:a.基本文件操做:openreadwrite;  b.文件鎖(避免多個用戶進程對同一文件競爭操做,fcntl()對文件進行上鎖),解決文件共享問題;  c.多路複用:解決I/O複用問題(系統接口重複使用)接口

2.1.linux IO模型(5種)

應該是:同步阻塞IO、同步非阻塞IO、多路複用IO、信號驅動IO、異步IO

  阻塞IO模型:系統調用的IO(接口)函數未完成,一直阻塞掛起,直到數據拷貝完成

  非阻塞IO模型:不管應用程序在系統調用時是否完成,都當即返回!

  多路複用IO模型:系統調用未完成,函數等待,系統IO還能夠操做其餘的函數調用;(多功能)

  異步IO:進程先讓內核完成IO操做,內核在通知進程操做完成;(分道)

前四種都是同步IO,只有最後一種纔是異步IO

2.2多路複用IOepollpollselect函數)

  selectpoll基本是差很少的,除了select監聽事件個數限制(1024個),其餘和poll沒有太大區別。用戶程序每次監聽,都要將其監聽事件集從用戶態拷貝到內核態執行,而後再返回用戶態,一旦有事件觸發,只能經過遍歷的方式才能找到觸發事件,開銷很大。

  Epoll最優秀的多路複用機制!監測無上限,在註冊新事件時只需一次拷貝全部監聽事件到內核便可epoll是隻關心活躍的fd,經過回調機制無序遍歷,提升效率。

3標準IO操做

  基本的IO操做(readwriteopen都沒有緩衝空間,用戶程序必需要從用戶態切換至內核態,執行相應的命令操做,再返回用戶態繼續執行代碼。 -> 爲提升用戶程序執行效率,Linux還提供了標準IO操做(fopen()fread()fwrite()gets()puts()等,r,rb+,w.wb+)。帶緩衝區的,基於流緩衝,將數據儘可能多的寫入緩存區再一次性讀取,減小用戶態-內核態-用戶態的切換,提升程序執行效率。

相關文章
相關標籤/搜索