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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制

發布時間:2024/7/23 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

操作系統第二章--進程的描述與控制

前趨圖和程序執行

    • 前趨圖
      • 前趨圖是一個有向無循環圖DAG,用來描述進程之間執行的前后關系
      • 初始結點:沒有前趨的結點
      • 終止結點:沒有后繼的結點
      • 重量:表示該結點所含有的程序量或結點的執行時間
    • 程序執行
      • 順序執行
        • 順序性
        • 封閉性:程序運行時獨占全機資源
        • 可再現性
      • 并發執行
        • 間斷性
        • 失去封閉性
        • 不可再現性

進程的描述

    • 進程的定義和特征
      • 進程定義
        • 進程是程序的一次執行
        • 進程是一個程序及其數據在處理機上順序執行時發生的活動
        • 進程是系統進行資源分配和調度的一個獨立單位
      • 進程結構
        • 進程控制塊PCB:使程序能獨立運行
        • 程序段、相關的數據段、PCB
      • 進程特征
        • 動態性:它由創建而產生,由調度而執行,由撤銷而消亡
        • 程序是指令集是靜態的,進程是動態的
        • 并發性:多個進程實體在一段時間內同時進行
        • 獨立性:進程實體是獨立運行、獨立分配資源和獨立接受調度的基本單位
        • 異步性:各進程獨立、異步(速度不一致)地運行
    • 進程的基本狀態和轉換
      • 基本狀態
        • 就緒狀態:萬事俱備,只差CPU資源
        • 執行狀態:獲得CPU資源,正在執行
        • 阻塞狀態:由于突發事件,進程放棄處理機而處于暫停狀態
      • 轉換
        • 進程調度:就緒態-->運行態
        • 被高優先級任務搶占或超時:運行態-->就緒態
        • I/O請求:運行態-->阻塞態
        • I/O完成:阻塞態-->就緒態
    • 掛起操作
      • 執行的進程暫停下來,處于靜止狀態
    • 進程管理中的數據結構
      • 進程控制塊的作用PCB
        • 獨立運行基本單位的標志
        • 間斷性運行:保護CPU現場
        • 進程管理:OS通過CPU對進程實施控制和管理
        • 進程調度:提供進程狀態、優先級等信息
        • 進程同步與通信:消息隊列指針,信號量
      • 進程控制塊的內容
        • 進程標識符:唯一標識一個進程
          • 內部標識符:Pid
          • 外部標識符:進程的名字
        • 處理機狀態:由各種寄存器內容構成
          • 通用寄存器
          • 指令計數器PC
          • 程序狀態字PSW
          • 用戶棧指針SP
        • 當進程切換時需要把當前進程的狀態的內容保存在進程控制塊中
        • 進程調度信息
          • 進程狀態:sched.h定義了6個進程狀態
          • 可運行狀態
          • 可中斷阻塞狀態
          • 不可中斷阻塞狀態
          • 僵死狀態
          • 暫停態
          • 交換態
          • 進程優先級
          • 其他信息:進程已執行時間
          • 事件:阻塞原因
        • 進程控制信息
          • 程序和數據地址:基地址
          • 進程同步和通信機制
          • 資源清單
          • 鏈接指針
      • 進程控制塊的組織方式
        • 鏈接方式:指針指向PCB地址
        • 索引方式:通過不同狀態的索引表指向PCB地址
        • 多級隊列:按照不同狀態組織PCB隊列,同一狀態按照優先級鏈接

進程控制

    • 原語:由若干條指令組成,用于完成一定功能
      • 是原子操作,一個操作中的所有動作要么不做,要么全做
    • 進程的創建
      • 進程圖:描述一個進程的家族關系的有向圖
        • 子進程可以繼承父進程所擁有的資源
        • 當子進程被撤銷時,應將其從父進程那里獲得的資源歸還給父進程
        • 在撤銷父進程時,也必須同時撤銷其所有的子進程
      • 引導進程創建另一個進程的事件
        • 用戶登錄
        • 作業調度
        • 提供服務
        • 應用請求
      • 進程創建 fork()函數
        • 申請空白PCB
        • 為新進程分配資源
        • 初始化進程控制塊
        • 將進程插入就緒隊列,啟動調度
    • 進程終止 exit()函數
      • 根據被終止進程的PID,找到PCB,讀取進程狀態
      • 若處于執行狀態,則終止執行,重新調度
      • 若有子孫進程,則終止所有子孫進程
      • 歸還所有資源給父進程或系統
      • 從所在隊列移除終止進程PCB
    • 進程的阻塞與喚醒
      • 阻塞過程 block
        • 調用阻塞原語block把自己阻塞
        • 狀態由執行改為阻塞,將PCB插入阻塞隊列
        • 重新調度,將處理機分配給另一就緒進程
      • 喚醒過程 wakeup
        • 從阻塞隊列中移除
        • 狀態由阻塞改為就緒
        • PCB插入到就緒隊列
    • 進程的掛起與激活
      • 掛起原語 suspend
        • 檢查被掛起進程的狀態
          • 活動就緒:靜止就緒
          • 活動阻塞:靜止阻塞
        • PCB復制到指定區域
      • 激活原語 active
        • 檢查激活進程的狀態
          • 靜止就緒:活動就緒
          • 靜止阻塞:活動阻塞

進程的同步

    • 進程同步的基本概念
      • 臨界資源:互斥使用的資源
      • 臨界區:訪問臨界資源的那段代碼
    • 信號量機制
      • 按照功能分為
        • 互斥信號量:0或1
        • 資源信號量:數字表示資源的可用個數
      • 按照機制分為
        • 整型信號量:定義一個整型量,wait、signal,P、V操作
        • 記錄型信號量:不存在忙等現象
        • AND型信號量:同步機制,原子操作
        • 信號量集:分配多個資源
    • 管程機制

經典進程的同步問題

    • 生產者/消費者問題
      • 生產者和消費者進程共享一個大小固定的緩沖區n
      • 分別設置兩個指針in和out
        • in指向生產者將存放數據的存儲單元
        • out指向消費者將取出數據的存儲單元
      • 創建信號量實現生產者和消費者進程的同步
        • 互斥信號量mutex:進程對緩沖池互斥使用
        • 資源信號量empty:空緩沖區的數量
        • 資源信號量full:滿緩沖區的數量
    • 讀者/寫者問題
      • 允許多個讀者進程可以同時讀數據
      • 寫者進程互斥寫數據
      • 若有寫者進程正在寫數據,則不允許讀者進程讀數據
      • 讀者優先:只有當全部讀者退出,才允許寫者進入寫數據
    • 哲學家進餐問題
      • 記錄型信號量:wait、signal考慮左筷子和右筷子(可能存在死鎖)
      • AND信號量:Sswait、Ssignat

進程通信

    • 進程通信的類型
      • 共享存儲器系統
        • 基于共享數據結構的通信方式
        • 基于共享存儲區的通信方式
      • 管道Pipe通信
        • 用于連接讀寫進程以實現通信的共享文件
      • 消息傳遞方式
        • 直接通信:利用OS提供的發送命令Send、Receive
        • 間接通信
          • 信箱:通過中間實體(如共享數據結構)
          • 消息隊列:msgsnd、msgrcv、msgget

線程VS進程

    • 調度:線程是調度分配的基本單位,進程是擁有資源的基本單位
    • 并發性:線程并發執行效率更高
    • 擁有資源:線程僅有少量資源來完成運行需求,不擁有系統資源
    • 獨立性:線程獨立性更低
    • 系統開銷:切換線程系統開銷低

網站閱讀

https://geminiplanet.cn/Operating-System-4/?geminiplanet.cn

總結

以上是生活随笔為你收集整理的模拟进程创建、终止、阻塞、唤醒原语_操作系统第二章--进程的描述与控制的全部內容,希望文章能夠幫你解決所遇到的問題。

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