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