一、Linux系統概述
(一)Linux系統概述
(二)Linux系統簡介
? ? ? ? 1.常見的Linux系統?
? ? ? ? 2.Linux操作系統是操作系統的核心,也成為內核,內核的主要功能?
? ? ? ? 3.shell是操作系統的外殼,主要作用?
二、shell
(一)常用的shell命令
? ? ? ? 1.基本的shell命令
? ? ? ? 2.文件查看命令
? ? ? ? 3.通配符
? ? ? ? 4.管道
? ? ? ? 5.重定向
? ? ? ? 6.文件查找命令
? ? ? ? 7.常見命令
? ? ? ? 8.壓縮和解壓命令
? ? ? ? 9.用戶管理命令
(二)shell腳本
? ? ? ? 1.編程語言的分類
? ? ? ? 2.shell腳本編譯
三、IO
(一)概念
(二)文件
(三)標準IO
? ? ? ? 1.概念:通常操作普通文件
? ? ? ? 2.普通文件類型:ASCII、二進制
? ? ? ? 3.標準IO的接口
? ? ? ? 4.文件的打開
? ? ? ? 5.標準IO的緩存
? ? ? ? ? ? ? ? ①概念
? ? ? ? ? ? ? ? ②緩存類型?
? ? ? ? 6.流的定位
(四)文件IO
? ? ? ? 1.概念:相比于標準IO(庫函數),文件IO(系統調用)沒有緩存,適合于通信、硬件設備操作
? ? ? ? 2.系統調用與庫函數
? ? ? ? 3.文件IO函數接口
(五)目錄IO
? ? ? ? 1.操作方式
? ? ? ? 2.函數接口
? ? ? ? 3.文件名和路徑
? ? ? ? 4.時間相關的函數接口
? ? ? ? ? ? ? ? ①時間類型分類
? ? ? ? ? ? ? ? ②函數接口
四、進程和線程
(一)進程
? ? ? ? 1.基本概念
? ? ? ? 2.進程創建
? ? ? ? ? ? ? ? ①進程空間分布
? ? ? ? ? ? ? ? ②虛擬地址和物理地址
? ? ? ? ? ? ? ? ③多進程存儲、存儲方式?
? ? ? ? ? ? ? ? ④多進程調度
? ? ? ? ? ? ? ? ⑤進程相關的命令
? ? ? ? ? ? ? ? ⑥進程的狀態
? ? ? ? 3.進程相關函數接口
- 創建:fork
- 執行:exec
- 結束:exit/_exit /return(main)
? ? ? ? 4.進程消亡
? ? ? ? ? ? ? ? ①孤兒進程?
? ? ? ? ? ? ? ? ②僵尸進程:產生原因和如何避免?
? ? ? ? ? ? ? ? wait/waitpid
? ? ? ? 5.exec函數族:利用進程空間執行另一份代碼(父進程產生子進程,讓子進程去送人頭)
(二)線程
? ? ? ? 1.基本概念
? ? ? ? 2.進程和線程區別
? ? ? ? 3.多進程和多線程的優缺點?
? ? ? ? 4.線程的調度:宏觀并行,微觀串行?
? ? ? ? 5.線程的消亡
? ? ? ? 6.線程的函數接口
- 創建:pthread_create
- 執行:線程回調函數
- 結束:pthread_exit / return / pthread_cancel/ //exit
- 線程資源回收:pthread_detach
- 分離屬性和結合屬性:pthread——join
- 線程間(互斥+同步):pthread_nutex_t / pthread_sem_t
? ? ? ? 7.線程的傳參
? ? ? ? 8.線程的屬性:分離屬性和加入屬性
(三)線程間通信
? ? ? ? 1.概念
? ? ? ? 2.方式:因為有共享數據段,采用全區變量
? ? ? ? 3.互斥鎖:解決線程間資源競爭?
? ? ? ? 4.死鎖
? ? ? ? 5.信號量?
(四)進程間通信
? ? ? ? 1.概念:利用Linux內核實現多進程間通信
? ? ? ? 2.進程間通信常用的方式
? ? ? ? 3.管道:有名管道、無名管道
? ? ? ? 4.信號:進程間任務事件的通知
? ? ? ? 5.消息隊列:IPC對象?
? ? ? ? 6.共享內存:內核中開辟一段固定大小的內核空間、進程間通信的最高效形式
? ? ? ? 7.信號燈:搭配共享內存使用
五、線程vs進程
一、進程和線程都是系統執行任務
? ? ? ? 1.進程:資源分配的基本單位
? ? ? ? 2.線程:cpu執行調度的最小單位
二、進程
? ? ? ? 1.進程的創建和切換的開銷大
? ? ? ? 2.空間獨立,安全、穩定
? ? ? ? 3.進程間通信
三、線程
? ? ? ? 1.線程的創建和切換的開銷小
? ? ? ? 2.線程共享進程資源方便
? ? ? ? 3.線程間資源競爭(線程間同步互斥機制)
? ? ? ??