日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【OS】课设记录总结+进程整理

發布時間:2025/1/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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.索引方式:

    • 根據進程狀態的不同,建立幾張索引表
    • 操作系統持有指向各個索引表的指針
      !![](https://img-blog.csdnimg.cn/2021031909175560.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pjdzEyMzQ1MTU=,size_16,color_FFFFFF,t_70)![](https://img-blog.csdnimg.cn/20210319091811117.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pjdzEyMzQ1MTU=,size_16,color_FFFFFF,t_70)

    進程的特征:

  • 動態性:進程是程序的一次執行過程,動態產生,變化和消亡;是進程最基本的特征
  • 并發性:內存中有多個進程實體,各個進程可以并發執行;
  • 獨立性:進程是能夠獨立運行的,獨立獲得字樣,獨立接受調度的基本單位(進程)
  • 異步性:各進程按各自獨立的,不可預知的速度向前推進,操作系統要提供進程同步機制來解決異步問題
  • 結構性:每個進程都會分配一個PCB。結構上是由PCB,數據塊,程序塊組成;
  • 課程設計–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++知識點

  • VS 編譯安全問題,解決strcpy等不安全
  • 解決方法:

    (打開)
    項目->屬性->C/C+±>預處理器->預處理器定義
    (添加)
    _CRT_SECURE_NO_DEPRECATE
    _CRT_NONSTDC_NO_DEPRECATE

    總結

    以上是生活随笔為你收集整理的【OS】课设记录总结+进程整理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。