日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

linux進程概念

作者:DayDay upup 更新時間: 2022-09-22 編程語言

文章目錄

    • 馮諾依曼體系結構
    • 操作系統
    • 進程
    • 創建進程
    • 查看進程

馮諾依曼體系結構

世界上大部分的計算機,都遵循馮諾依曼體系結構

在這里插入圖片描述

輸入設備:鍵盤,話筒,攝像頭,磁盤,網卡等
輸出設備:顯示器,音響,磁盤,顯卡等
運算器,控制器:CPU
存儲器:內存

為什么采用這樣的體系結構?

技術角度

CPU處理數據的速度遠遠大于其他設備,根據木桶效應,計算機的效率就受到限制,因此,前人就設計出內存,讓內存作為CPU與外設交互的中介,適配外設和CPU速度不均的問題。

成本角度

寄存器的成本遠遠大于內存,從成本和效率的角度出發,我們選擇這樣的體系

操作系統

操作系統是一款軟件,其本質是對數據進行管理。
在這里插入圖片描述
如何理解操作系統對數據的管理?

  1. 首先作為用戶我們是沒有權限對硬件進行直接的訪問,而是通過操作系統提供給我的接口間接的訪問硬件。
  2. 如果我們作為一個班的班長,我們如何才能管理好學生的信息?先描述,在組織
    在這里插入圖片描述
    先通過描述人的特征,再通過鏈表進行組織,進行管理。

進程

進程可以粗略地理解為一個運行的程序就是一個進程。
在這里插入圖片描述
描述進程-PCB
進程信息被放在一個叫做進程控制塊的數據結構中,可以理解為進程屬性的集合。
課本上稱之為PCB, Linux操作系統下的PCB是: task_struct

task_ struct內容分類

  1. 標示符: 描述本進程的唯一標示符,用來區別其他進程。

  2. 狀態: 任務狀態,退出代碼,退出信號等。

  3. 優先級: 相對于其他進程的優先級。

  4. 程序計數器: 程序中即將被執行的下一條指令的地址。

  5. 內存指針: 包括程序代碼和進程相關數據的指針,還有和其他進程共享的內存塊的指針

  6. 上下文數據: 進程執行時處理器的寄存器中的數據[休學例子,要加圖CPU,寄存器]。

  7. I/O狀態信息: 包括顯示的I/O請求,分配給進程的I/O設備和被進程使用的文件列表。

  8. 記賬信息: 可能包括處理器時間總和,使用的時鐘數總和,時間限制,記賬號等

  9. 其他信息

創建進程

#include <stdio.h>                                           
#include <unistd.h>                                  
                  
int main()                                   
{                         
  while(1)                                                         
  {        
    printf("I am a process\n");                                  
    sleep(1); 
                                                           
  }       
         
  return 0;                           
} 

查看進程

[zjq@ecs-29268 ~]$ ps ajx 

在這里插入圖片描述

如何找到我們需要的進程呢?

[zjq@ecs-29268 ~]$ ps ajx |head -1 && ps ajx| grep 'process'| grep -v grep

在這里插入圖片描述

進程id(PID) 父進程id(PPID)

原文鏈接:https://blog.csdn.net/zjq_love/article/details/126487095

欄目分類
最近更新