項目名稱 | 【蘇嵌實訓-嵌入式linuxC第7天】 |
---|---|
今日進度以及任務 | Linux下檔案的建立、讀寫,線程 |
本日任務完成情況 | 基本掌握了檔案的建立、讀寫,線程函數 |
本日開發中出現的問題彙總 | 無 |
本日未解決的問題 | 無 |
本日開發收獲 | 學習了一些基本知識 |
其他 | 無 |
嵌入式Linux C程式設計:在Linux上使用C語言調用作業系統功能接口開發應用程式
-
嵌入式為什麼要移植作業系統?
1、提供軟體的一緻性
2、作業系統提供了多任務操作
3、作業系統提供了豐富的網絡協定棧
4、作業系統将所有裝置抽象成檔案,友善通路裝置
嵌入式Linux C程式設計:檔案、多任務、網絡程式設計
-
Linux系統構成/劃分;使用者空間、核心空間
<為什麼将系統劃分為使用者空間、核心空間?保護核心的安全>
<使用者該如何通路核心空間?通過系統調用(核心提供安全的通路核心的資料及服務的接口)>
<使用者如何發生系統調用?調用系統提供的程式設計函數接口–API(使用者程式設計接口)>
檔案程式設計:
-
檔案描述符;系統給的檔案ID号(無符号整型)
<知道一個檔案描述符、操作這個檔案描述符,相當于在操作這個檔案>
<檔案描述符的配置設定方式:動态配置設定(隻有當你操作這個檔案、系統才會給你配置設定檔案描述符,使用完畢之後回收)>
<0、1、2這三個檔案描述符已經被系統占用,有特殊作用,是以說系統的普通檔案id是從3開始的>
-
檔案API(記住頭檔案,記住函數原型(形參和傳回值的作用),寫測試,應用)
creat\open\read\write\lseek\close
作業:
向檔案中寫入三行代碼,再讀出來
嵌入式Linux多任務程式設計
-
什麼是多任務?
單任務:在一個任務執行期間,其他任務不能被排程
多任務:
<目前CPU單核,存在任務并發,不存在并行>
<目前CPU多核,即存在并發,也存在并行>
- 實作多任務的方式:程序、線程
- 程序:實作多任務的開銷較大,因為每個程序都有獨立的位址空間,導緻程序間的通信效率不高,優點:安全
- 線程:實作多任務的開銷小,因為每個線程共享位址空間,通信效率高,缺點:不安全
- 程序切換計算機資源開銷大, 程序間資料共享的開銷也很大
- 線程是程序的一個執行單元,是程序的一個排程實體
- 同一程序的線程共享本程序的位址空間,程序之間是獨立的共享空間
- 程序退出後,程序中所有的線程全部退出
- 一個程序崩潰後不會對其他程序産生影響,但一個線程崩潰,整個程序都要死掉 線程不可能完全替代程序
- 多線程展現的就是函數的切換