網(wǎng)站首頁 編程語言 正文
文章目錄
- 馮諾依曼體系結(jié)構(gòu)
- 操作系統(tǒng)
- 進程
- 創(chuàng)建進程
- 查看進程
馮諾依曼體系結(jié)構(gòu)
世界上大部分的計算機,都遵循馮諾依曼體系結(jié)構(gòu)
輸入設(shè)備:鍵盤,話筒,攝像頭,磁盤,網(wǎng)卡等
輸出設(shè)備:顯示器,音響,磁盤,顯卡等
運算器,控制器:CPU
存儲器:內(nèi)存
為什么采用這樣的體系結(jié)構(gòu)?
技術(shù)角度
CPU處理數(shù)據(jù)的速度遠遠大于其他設(shè)備,根據(jù)木桶效應(yīng),計算機的效率就受到限制,因此,前人就設(shè)計出內(nèi)存,讓內(nèi)存作為CPU與外設(shè)交互的中介,適配外設(shè)和CPU速度不均的問題。
成本角度
寄存器的成本遠遠大于內(nèi)存,從成本和效率的角度出發(fā),我們選擇這樣的體系
操作系統(tǒng)
操作系統(tǒng)是一款軟件,其本質(zhì)是對數(shù)據(jù)進行管理。
如何理解操作系統(tǒng)對數(shù)據(jù)的管理?
- 首先作為用戶我們是沒有權(quán)限對硬件進行直接的訪問,而是通過操作系統(tǒng)提供給我的接口間接的訪問硬件。
- 如果我們作為一個班的班長,我們?nèi)绾尾拍芄芾砗脤W(xué)生的信息?先描述,在組織
先通過描述人的特征,再通過鏈表進行組織,進行管理。
進程
進程可以粗略地理解為一個運行的程序就是一個進程。
描述進程-PCB
進程信息被放在一個叫做進程控制塊的數(shù)據(jù)結(jié)構(gòu)中,可以理解為進程屬性的集合。
課本上稱之為PCB, Linux操作系統(tǒng)下的PCB是: task_struct
task_ struct內(nèi)容分類
-
標(biāo)示符: 描述本進程的唯一標(biāo)示符,用來區(qū)別其他進程。
-
狀態(tài): 任務(wù)狀態(tài),退出代碼,退出信號等。
-
優(yōu)先級: 相對于其他進程的優(yōu)先級。
-
程序計數(shù)器: 程序中即將被執(zhí)行的下一條指令的地址。
-
內(nèi)存指針: 包括程序代碼和進程相關(guān)數(shù)據(jù)的指針,還有和其他進程共享的內(nèi)存塊的指針
-
上下文數(shù)據(jù): 進程執(zhí)行時處理器的寄存器中的數(shù)據(jù)[休學(xué)例子,要加圖CPU,寄存器]。
-
I/O狀態(tài)信息: 包括顯示的I/O請求,分配給進程的I/O設(shè)備和被進程使用的文件列表。
-
記賬信息: 可能包括處理器時間總和,使用的時鐘數(shù)總和,時間限制,記賬號等
-
其他信息
創(chuàng)建進程
#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
相關(guān)推薦
- 2022-05-27 Flutter狀態(tài)管理Bloc之定時器示例_Android
- 2022-04-03 對已有的docker容器增加新的端口映射問題(兩種方式)_docker
- 2023-03-01 Shell腳本read用法實現(xiàn)_linux shell
- 2022-07-24 Golang?CSP并發(fā)機制及使用模型_Golang
- 2023-03-17 Python控制windows系統(tǒng)音量實現(xiàn)實例_python
- 2022-03-31 用C語言實現(xiàn)排雷游戲_C 語言
- 2023-05-29 批標(biāo)準(zhǔn)化層?tf.keras.layers.Batchnormalization()解析_pytho
- 2022-06-20 C語言手把手帶你掌握帶頭雙向循環(huán)鏈表_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支