操作系统01_进程和线程管理
生活随笔
收集整理的這篇文章主要介紹了
操作系统01_进程和线程管理
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
進(jìn)程和線程
1.并發(fā)和并行
并行是多個事件在同一時刻發(fā)生,并發(fā)是多個事件在同一時間間隔內(nèi)發(fā)生。
2.操作系統(tǒng)的基本特征
- 并發(fā)程序并發(fā)執(zhí)行
- 共享互斥共享和同時訪問兩種方式
- 虛擬時分復(fù)用技術(shù)和空分復(fù)用技術(shù)
- 異步進(jìn)程異步執(zhí)行,停停走走向前推進(jìn),時間片
3.什么是進(jìn)程?
程序是指令和數(shù)據(jù)的有序集合,進(jìn)程是進(jìn)程實(shí)體(程序段、數(shù)據(jù)段、PCB)在處理機(jī)上的一次執(zhí)行過程。進(jìn)程是系統(tǒng)資源分配和調(diào)度的一個獨(dú)立單位。
引入進(jìn)程是為了程序并發(fā)執(zhí)行,以提高資源利用率和系統(tǒng)吞吐量。
4.什么是線程?
線程是獨(dú)立調(diào)度、獨(dú)立運(yùn)行和分派的基本單位。線程是輕量級進(jìn)程,線程只擁有少量資源(TCB等),并不擁有系統(tǒng)資源,多線程共享進(jìn)程的資源。
引入線程是為了減少程序并發(fā)執(zhí)行的時空開銷(主要在創(chuàng)建、撤銷和進(jìn)程切換),使OS具有更好的并發(fā)性。
5.進(jìn)程的特征(與程序的區(qū)別)
- 動態(tài)性進(jìn)程是一次執(zhí)行過程,由創(chuàng)建而產(chǎn)生、調(diào)度而執(zhí)行、撤銷而消亡。程序是靜態(tài)的,如果沒有為之建立PCB,則程序沒有意義。
- 并發(fā)性多個進(jìn)程實(shí)體在內(nèi)存中,在一段時間里能同時運(yùn)行。沒有建立PCB的程序不能并發(fā)執(zhí)行。
- 獨(dú)立性進(jìn)程實(shí)體能獨(dú)立運(yùn)行、獨(dú)立獲得資源、獨(dú)立接受調(diào)度。沒有建立PCB的程序不能獨(dú)立運(yùn)行。
- 異步性進(jìn)程各自獨(dú)立、異步運(yùn)行,因此程序才能并發(fā)執(zhí)行,為保證結(jié)果可再現(xiàn),需配置進(jìn)程同步機(jī)制。
6.進(jìn)程的狀態(tài)及轉(zhuǎn)換
- 就緒(Ready)進(jìn)程已獲得除CPU以外的必要資源,需按策略排成就緒隊(duì)列
- 執(zhí)行(Running)進(jìn)程獲得CPU,程序執(zhí)行
- 阻塞(Block)進(jìn)程由于發(fā)生I/O請求等事件無法繼續(xù)執(zhí)行,產(chǎn)生阻塞,這時需進(jìn)行調(diào)度,將阻塞進(jìn)程加入阻塞隊(duì)列,將處理機(jī)分配給就緒隊(duì)列中的進(jìn)程
- 創(chuàng)建進(jìn)程申請PCB,初始化PCB,處理機(jī)為進(jìn)程分配資源,最后把進(jìn)程轉(zhuǎn)入就緒狀態(tài)并加入就緒隊(duì)列
- 終止進(jìn)程在執(zhí)行過程中由于正常或異常需要終結(jié),OS處理后將PCB清零并將PCB空間返還系統(tǒng)。
- 狀態(tài)轉(zhuǎn)換圖
7.進(jìn)程同步方式
- 硬件同步方式,如關(guān)中斷、Swap指令、Test-And-Set指令
- 信號量機(jī)制
- 管程機(jī)制
8.經(jīng)典進(jìn)程同步問題
生產(chǎn)者-消費(fèi)者問題
轉(zhuǎn)載于:https://www.cnblogs.com/pycrab/p/9376848.html
總結(jié)
以上是生活随笔為你收集整理的操作系统01_进程和线程管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django的视图层简介
- 下一篇: 做一个有梦想的咸鱼!