天天看點

蘇嵌實訓-嵌入式linuxC第7天

項目名稱 【蘇嵌實訓-嵌入式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多核,即存在并發,也存在并行>

  • 實作多任務的方式:程序、線程
  • 程序:實作多任務的開銷較大,因為每個程序都有獨立的位址空間,導緻程序間的通信效率不高,優點:安全
  • 線程:實作多任務的開銷小,因為每個線程共享位址空間,通信效率高,缺點:不安全
  • 程序切換計算機資源開銷大, 程序間資料共享的開銷也很大
  • 線程是程序的一個執行單元,是程序的一個排程實體
  • 同一程序的線程共享本程序的位址空間,程序之間是獨立的共享空間
  • 程序退出後,程序中所有的線程全部退出
  • 一個程序崩潰後不會對其他程序産生影響,但一個線程崩潰,整個程序都要死掉 線程不可能完全替代程序
  • 多線程展現的就是函數的切換