Linux系统编程学习问题回顾
生活随笔
收集整理的這篇文章主要介紹了
Linux系统编程学习问题回顾
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、關于文件——繼續學習系統io和文件io的區別,以及講明白同步與互斥。關于鎖,除了pv,還要繼續學習自旋鎖讀寫鎖。
系統io和文件io的區別
參考博文
同步與互斥
現代操作系統基本都是多任務操作系統,即同時有大量可調度實體在運行,同時運行可能是真的同時運行(SMP架構中),也可能僅僅是操作系統提供的服務(通過將CPU時間分片,并將時間片分給不同的任務)。在多任務操作系統中,同時運行的多個任務可能
- 都需要訪問/使用同一種資源
- 多個任務之間有依賴關系,某個任務的運行依賴于另一個任務
這兩種情形是多任務編程中遇到的最基本的問題,也是多任務編程中的核心問題,同步和互斥就是用于解決這兩個問題的。
- 互斥:是指散步在不同任務之間的若干程序片斷,當某個任務運行其中一個程序片段時,其它任務就不能運行它們之中的任一程序片段,只能等到該任務運行完這個程序片段后才可以運行,最基本的場景就是對資源的同時寫,為了保持資源的一致性,往往需要進行互斥訪問。
- 同步:是指散步在不同任務之間的若干程序片斷,它們的運行必須嚴格按照規定的某種先后次序來運行,這種先后次序依賴于要完成的特定的任務,最基本的場景就是任務之間的依賴,比如A任務的運行依賴于B任務產生的數據。
顯然,同步是一種更為復雜的互斥,而互斥是一種特殊的同步。
也就是說互斥是兩個任務之間不可以同時運行,他們會相互排斥,必須等待一個線程運行完畢,另一個才能運行,而同步也是不能同時運行,但他是必須要安照某種次序來運行相應的線程(也是一種互斥)!
因此互斥具有唯一性和排它性,但互斥并不限制任務的運行順序,即任務是無序的,而同步的任務之間則有順序關系。
2、關于進程與線程——第二階段線程資源要回收;第三階段進程資源要回收。回收的原因需要繼續了解線程的四種屬性。
線程的四種屬性
3、網絡編程和ftp項目——說的資源不回收的問題了。socket的多連接能用線程不要用進程,芯片資源有限。
4、socket中,tcp/ip相關的東西。三次握手,四次揮手,滑動窗口,擁塞控制這些。
總結
以上是生活随笔為你收集整理的Linux系统编程学习问题回顾的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java移动文件导致tomcat死掉_利
- 下一篇: linux 进程线程拓展