开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情
冯诺依曼体系结构
输入设备,存储器,输出设备,中央处理器(cpu)
存储器:内存
输入设备(产生数据):键盘,摄像头,话筒,磁盘,网卡……
输出设备(保存或者显示数据):显示器,音响,磁盘,网卡
cpu:
- 运算器:算数运算,逻辑运算
- 控制器:cpu是可以响应外部事件的,协调外部就绪事件
cpu读取数据(数据+代码),都是要从内存中读取。站在数据的角度,我们认为cpu不和外设直接交互;cpu要处理数据,需要先将外设中的数据,加载到内存。站在数据的角度,外设直接只和内存打交道。 管理是对管理对象的数据的管理 管理:先描述,再组织
什么是进程
我们从实现的角度来看: 进程是一种数据结构,用描述程序运行的状态和系统变化的状态。
描述进程——PCB
PCB英文名字process control block,叫做进程控制块。它是进程存在的唯一标识。
对于linux的PCB就是task_struct。那么task_struct里面有什么呢?
它里面包含:
- 表示符:描述本进程的唯一标示符,用来区别其他进程
- 状态:任务状态,退出代码,退出信号等
- 优先级:相当于其他进程的优先级
- 程序计数器:程序中即将被执行的下一条指令的地址
- 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
- 上下文数据:进程执行时处理器的寄存器中的数据。
- I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的问卷列表。
- 其他信息
查看进程
/proc
cwd的意思是当前进程的工作目录
每一个进程都会有一个属性,来保存自己所在的工作路径
ps命令
ps axj | grep myproc
下面这个是带上头部的
ps axj | head -1 && ps axj | grep myproc
不显示grep
ps axj | head -1 && ps axj | grep myproc | grep -v grep
循环监控1秒
while : ;do ps axj | head -1 && ps axj | grep myproc | grep -v grep; sleep 1;done
加上一些分割符
while : ;do ps axj | head -1 && ps axj | grep myproc | grep -v grep;echo "####" ;sleep 1;done
ps -l显示当前登录状态下的进程,ps -al详细显示
top命令
知道就行