本章主要介紹了進程,重點和難點是它和與它相關的一些概念和定義以及特徵,綜合了書上的學習目標和課後題簡單的整理了下
一、本章一直在說進程,那麼什麼是進程?
首先程序分爲順序執行和併發執行,而進程是允許併發執行的程序在數據集合上的運行過程,它是由正文段、用戶數據段及程序控制塊共同組成的執行環境
PS:進程的獨立性也注意下(就在下面)
二、進程不是憑空出現的,那麼什麼時候需要創建進程,又該如何創建呢?
操作系統通常在用戶登錄、作業調度、提供服務、應用請求時創建新的進程,步驟如下:
1.申請空白PCB
2.爲新進程分配資源
3.初始化控制塊
4.將新進程插入就緒隊列
三、進程的特徵(區別於程序的特徵)
1.併發性:多個進程實體能在一段時間間隔內同時運行
2.動態性:創建-執行-撤銷
3.獨立性:在沒有引入線程概念的操作中,進程是獨立運行和資源調度的基本單位
4.異步性:進程的執行時斷時續,不可預知
5.結構特徵:包括用戶正文段、用戶數據段和進程控制塊
四、因爲某些原因,在進程中出現了線程,那什麼是線程,爲什麼會出現它?
1.線程是進程的一個實體,是被系統獨立調度和分派的基本單位。線程只擁有在運行中必需的資源,包括程序計數器和棧,但它可與同屬一個進程的其他線程共享進程所擁有的全部資源
2.出現線程的原因很簡單,就是爲了進一步提高程序的併發性,減少系統的開銷