目录
冯诺依曼体系结构
1.体系组成
2.常见的组成
输入设备:键盘,鼠标,磁盘,网卡
存储器(内存)
中央处理器(CPU):运算器——对数据进行运算(逻辑运算和数学运算),控制器(对硬件流程进行一定的控制)
输出设备:显示器,打印机,磁盘,网卡
输入设备和输出设备都算外设
在此体系中,设备只能和内存打交道
外设只能从内存读取或存储,CPU也只能对内存进行读写,不能访问外设
3.具体事例分析
我接受朋友发的消息:
4.为什么会产生冯诺依曼体系结构
因为不同存储工具处理数据的速度不同
操作系统
(OS)【operater system】
1.定位和组成(是什么)
是一块管理软件和硬件的软件
组成:内核(进程管理,内存管理,文件管理,驱动管理), 其他程序(函数库,shell程序)
2.设计目的(为什么)
3.细谈管理
1.举例说明
我们可以把操作系统的管理类比一下
一个学校的校长不和学生见面也可以管理学生,只要能拿到对应学生的信息(也就是数据)就可以进行管理,管理者可以通过执行者来拿取数据,从而管理被管理者。
2.管理硬件的方法(2步)——引出struct—链表——对数据的管理就是对某种数据结构的增删改查
如果学校的校长不会使用程序,只能使用Excel来操作学生信息,但如果校长是个程序员,可以将学生的信息存储在struct结构体中,并将其连接成链表,此时校长对学生的管理就变成了对链表的增删改查。
在操作系统中,管理任何对象,最终都可以转化为对某种数据结构的增删改查
3.库函数和系统调用的关系
系统调用——操作系统不相信用户,提供接口,接口是用操作系统提供的c语言写的,是操作系统内部函数的调用,所以所有访问操作系统的行为由系统调用完成。
库函数——给上层用户进行二次开发 部分系统调用的分装,通过接口,进行系统调用。
上下层调用和被调用的关系
进程
1.概念
正在运行的加载到内存的程序
内核观点:占用CPU分配的系统资源的实体
2.描述进程属性的集合——PCB
(1)理解PCB——结构体,记录关于进程的内容(Progress Control Block)
(2)进程在操作系统的实例
单个进程解释:
PCB相当于你的档案,code&data相当于你这个人
一个被学校认可和管理的学生=档案+个人
进程=内核PCB数据结构对象+代码和数据
内核PCB包含这个进程的所有属性值
学校管理学生通过档案和资料管理
操作系统管理进程通过PCB管理进程
多个进程解释:
一个操作系统,不仅仅只能运行一个进程,可以同时运行多个进程。
因此操作系统必须将进程管理起来,那么操作系统应该如何管理进程呢?
答案是:先描述,在组织。
描述:任何一个进程,在加载到内存,形成真正的进程时,操作系统首先要创建描述进程的结构体对象——PCB
组织:链接结构体。
(3)Linux中的进程属性:task struct
在linux中描述进程的结构体叫task_struct
task_struct是Linux内核的一种数据结构,他会被装载到RAM(内存)里并且包含着进程的信息
标示符: 描述本进程的唯一标示符,⽤用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据
I/O状态信息: 包括显⽰示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息
接下来说的都是linux ——task struct
3.获取进程信息
进程的信息可以通过/proc系统文件夹查看
***如果要获取PID为1 的进程信息,那么就查看 /proc/1 这个文件夹
***大多数进程信息都可以通过top和ps这些指令来获取。
间隔一秒不断打印指定进程信息:
while :; do ps ajx | head -1 ; ps ajx | grep proc | grep -v grep ; ehco"------------------" ; sleep 1 ; done
do ps ajx | head -1:
打印出第一行——展示进程的信息
grep -v grep:
因为grep命令是bash下面的进程,-v后可以除去含grep的信息。