計算機操作系統零散筆記——關於進程

決定不定期整理一下計算機操作系統的筆記,零零散散的。。表現得湊合湊合,但是在腦子裏不能湊合(¬︿̫̿¬)

-----------------------------------------------------------分割線--------------------------------------------------------------------------------------------------------

進程就是操作系統對cpu是如何管理的

程序運行起來了就是進程。

進程控制塊PCB 簡單的來說就是一個結構體,每個節點就是一個結構體

在linux中pcb結構體的命名就叫Task Struct

一個進程包含了:

1.程序計數器 pc , 其他寄存器
2.棧
3.堆
4.數據段
5.代碼段
注意:所有局部分配的變量都放在棧裏。
一個進程可以佔的最大內存理論是4G。
同一個CPU上不可能運行兩個以上的進程

進程狀態:
new(新建)
ready(就緒態)(還沒cpu,一給cpu立馬就可以運行了)
running(運行態)(擁有cpu)
1、會被操作系統中斷interrupt,然後回到就緒態
2、會主動讓出cpu,主動要求新的事件發生,比如io,然後會進入等待狀態
waiting(等待態/阻塞態)
等待完畢後,獲得需要的指令後會進入就緒狀態。
terminated(結束)
一個進程不可能會從就緒態直接進入等待態。

關於自啓程序
內核先啓動shell(資源管理器),shell再啓動自啓程序

注意:在windows.上父進程和子進程沒有任何關係,什麼資源都不共享

殭屍進程: 他的父親不收他的屍體。就是佔着很多資源,但是完全什麼都幹不了了
如果出現殭屍的情況,會把這個進程交給系統的最跟部的進程 ,由操作系統直接領導的進程

linux中,叫init(初始化)

進程間的協作1、獨立 2、合作 : 信息共享/模塊化

對於fork的理解
在這裏插入圖片描述
需要注意的是,上面的程序當中,在父進程和子進程中,對應的value值是不一樣的,但是,他們的地址值確實一樣的。
至於原因,據說在後面的學習內容中會提到,先留個坑

發佈了52 篇原創文章 · 獲贊 24 · 訪問量 6287
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章