【OS】课设记录总结+进程整理
文章目錄
- 進(jìn)程
- 課程設(shè)計--Linux二級目錄設(shè)計
- C知識點:
- C語言學(xué)習(xí)網(wǎng)站:
- linux 底層C函數(shù)
- IO函數(shù)
- 頭文件 #include
進(jìn)程
1.定義:程序是一個指令序列;
PCB:進(jìn)程控制塊,用來描述進(jìn)程的各種信息,進(jìn)程代碼的存放位置;
PCB,程序段,數(shù)據(jù)段構(gòu)成進(jìn)程的實體(進(jìn)程映像)
程序段、數(shù)據(jù)段、PCB三部分組成了進(jìn)程實體(進(jìn)程映像)。
一般情況下,我們把進(jìn)程實體就簡稱為進(jìn)程例如,所謂創(chuàng)建進(jìn)程,實質(zhì)上是創(chuàng)建進(jìn)程實體中的PcB;而撤銷進(jìn)程,實質(zhì)上是撤銷進(jìn)程實體中的PCB
注意:PCB是進(jìn)程存在的唯一標(biāo)志
從不同的角度,進(jìn)程可以有不同的定義,比較傳統(tǒng)典型的定義有:
引入進(jìn)程實體的概念之后,進(jìn)程是進(jìn)程實體的運行過程,是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位。
注意:嚴(yán)格來說,進(jìn)程和進(jìn)程實體是不一樣的,實體是靜態(tài)的,進(jìn)程則是動態(tài)的,
PCB:操作系統(tǒng)通過PCB來管理進(jìn)程,因此PcB中應(yīng)該包含操作系統(tǒng)對其進(jìn)行管理所需的各種信息。
程序段:程序代碼存放位置;
數(shù)據(jù)段:程序運行時使用,產(chǎn)生的運算數(shù)據(jù)。如全局變量,局部變量,宏定義的常量,就是存放在數(shù)據(jù)段;
介紹PCB:
進(jìn)程描述信息
- 進(jìn)程標(biāo)識符PID
- 用戶標(biāo)識符UID
進(jìn)程控制和管理信息
- 進(jìn)程當(dāng)前狀態(tài)
- 進(jìn)程優(yōu)先級
資源分配清單
- 程序段指針
- 數(shù)據(jù)段指針
- 鍵盤
- 鼠標(biāo)
各種寄存器值:當(dāng)進(jìn)程切換是需要把進(jìn)程當(dāng)前運行情況記錄下來保存在PCB中,程序計數(shù)器的值表示當(dāng)前程序執(zhí)行到哪一句;
2.進(jìn)程的組織:在一個系統(tǒng)中,通常有數(shù)十、數(shù)百乃至數(shù)千個PCB。為了能對他們加以有效的管理,應(yīng)該用適當(dāng)?shù)姆绞桨堰@些PCB組織起來。
注:進(jìn)程的組成討論的是一個進(jìn)程內(nèi)部由哪些部分構(gòu)成的問題,而進(jìn)程的組織討論的是多個進(jìn)程之間的組織方式問題
進(jìn)程的組織方式:
1.鏈接方式:
-
按照進(jìn)程狀態(tài)將PCB分為多個隊列
-
操作系統(tǒng)持有指向各個隊列的指針
2.索引方式:
- 根據(jù)進(jìn)程狀態(tài)的不同,建立幾張索引表
- 操作系統(tǒng)持有指向各個索引表的指針
!
進(jìn)程的特征:
課程設(shè)計–Linux二級目錄設(shè)計
- 使用C語言在linux系統(tǒng)下實驗;
- 使用C++在window下模擬系統(tǒng)實驗;
C知識點:
C語言學(xué)習(xí)網(wǎng)站:
C語言
fprintf() 和 printf() 之間的區(qū)別
fprintf是將字符輸出到流(文件)的,printf是輸出到標(biāo)準(zhǔn)輸出設(shè)備(stdout)的,一般就是我們的屏幕。
如果使用fprintf(stdout, “”) ;相當(dāng)于指定輸出到設(shè)備也就與printf() 相同了;
求長度
**strlen(str) //C len(str) #python length(str) %matlab**輸入函數(shù)
scanf("%d",len); //C input(len); #python cin<<len; //C++linux 底層C函數(shù)
IO函數(shù)
-
open()
頭文件 #include <sys/types,h> #include<sys/stat.h> #include<fcntl.h>
函數(shù)定義: int open(const charpathname, int flags)
int open(const charpathname, int flags, mode_t mode); 參數(shù)flags 所能使用的參數(shù)旗標(biāo):
返回值:只要有一個權(quán)限被禁止返回-1,否則返回 0 -
dup() 復(fù)制文件描述符
頭文件 include <unistd.h>
函數(shù)定義:int dup(int oldfd ) dup()用來復(fù)制參數(shù)oldfd 所指的文件描述符,并返回,共享所有鎖定,讀寫位置和各項權(quán)限和旗幟,
-
close()
頭文件 #include <unistd.h>
函數(shù)定義:int close(int fd) 參數(shù)fd為先前創(chuàng)建文件時候的文件描述符;
返回值:順利關(guān)閉 return 0; 發(fā)生錯誤返回-1; -
read()
-
write()
-
lseed() 操作文件指針
shmat(shmid, 0, 0);
shmget(shmid, 0, 0);
signal(SIGUSR2, dealExit);
lockf(1,1,0)
getpid()
gets()
strstr()
C++知識點
解決方法:
(打開)
項目->屬性->C/C+±>預(yù)處理器->預(yù)處理器定義
(添加)
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
總結(jié)
以上是生活随笔為你收集整理的【OS】课设记录总结+进程整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【组原】广州大学计算机组成原理考试部分题
- 下一篇: 【OS】期末总结复习