域名怎么绑定网站,推广普通话手抄报模板,对网站的界面设计分析,山东省建设厅职业资格注册中心网站目录#xff1a; 冯诺依曼体系结构操作系统进程 基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程查看进程 fork()函数 冯诺依曼体系结构
我们常见的计算机#xff0c;如笔记本。我们不常见的计算机#xff0c;如服务器#xff0c;大部分都遵守冯诺… 目录 冯诺依曼体系结构操作系统进程 基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程查看进程 fork()函数 冯诺依曼体系结构
我们常见的计算机如笔记本。我们不常见的计算机如服务器大部分都遵守冯诺依曼体系,包括输入设备、存储器、输出设备、运算器和控制器。所以我们所认识的计算机都是有一个个的硬件组件组成 输入设备包括键盘, 鼠标扫描仪, 写板等 中央处理器(CPU)含有运算器和控制器等 输出设备显示器打印机等
这里的存储器指的是内存不考虑缓存情况这里的CPU能且只能对内存进行读写不能访问外设(输入或输出设备)外设(输入或输出设备)要输入或者输出数据也只能写入内存或者从内存中读取。一句话所有设备都只能直接和内存打交道。
操作系统
概念 任何计算机系统都包含一个基本的程序集合称为操作系统(OS)简单来说就是一个进行软硬件资源管理的软件笼统的理解操作系统包括进程管理内存管理文件管理驱动管理其他程序还有例如函数库shell程序等等。
设计OS的目的 与硬件交互管理所有的软硬件资源为用户程序应用程序提供一个良好的执行环境。
定位 在整个计算机软硬件架构中操作系统的定位是一款纯正的“搞管理”的软件。这里的管理就是通过合理的软件管理资源为用户提供良好的高效的执行环境。
进程
概念进程是程序在某个数据集合上的一次运行活动也是操作系统进行资源分配和保护的基本单位。
基本概念
书本概念程序的一个执行实例正在执行的程序等 内核观点担当分配系统资源CPU时间内存的实体
描述进程-PCB
进程信息被放在一个叫做进程控制块的数据结构中可以理解为进程属性的集合。我们称之为PCBprocess control blockLinux操作系统下的PCB是: task_struct。
task_struct-PCB的一种
在Linux中描述进程的结构体叫做task_struct。task_struct是Linux内核的一种数据结构它会被装载到RAM(内存)里并且包含着进程的信息。
task_ struct内容分类
标示符: 描述本进程的唯一标示符用来区别其他进程。 状态: 任务状态退出代码退出信号等。 优先级: 相对于其他进程的优先级。 程序计数器: 程序中即将被执行的下一条指令的地址。 内存指针: 包括程序代码和进程相关数据的指针还有和其他进程共享的内存块的指针 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子要加图CPU寄存器]。 IO状态信息: 包括显示的I/O请求,分配给进程的IO设备和被进程使用的文件列表。 记账信息: 可能包括处理器时间总和使用的时钟数总和时间限制记账号等。
组织进程
可以在内核源代码里找到它所有运行在系统里的进程都以task_struct链表的形式存在内核里。
查看进程
在linux下进程的信息可以通过 /proc 系统文件夹查看 通过系统调用getpid()函数来可以获取进程标识符 输入kill命令让这个进程停下来kill -9 32161 查看./myproc这个文件的进程ID输入命令ps ajx | head -1 ps axj | grep ‘myproc’注意我们查看之前不要杀掉这个进程否则进程ID就找不到了因为一个进程每一次被重新启动它就会重新加载到内存就意味着OS每一次都要给这个进程,相当于重新创建task_struct,重新分配pid。 上图中也可以查看到我们文件./myproc的进程标识符是32161。
fork()函数
fork函数的作用是创建子进程,fork()之后会有父进程子进程两个进程在执行后续的代码fork后续的代码被父子进程共享通过返回值的不同让父子进程执行后续共享代码的一部分 图中写了个两个死循环为什么这两个循环能同时跑起来呢因为我们调用fork()函数之后就变成了两个执行流父子进程同时在跑这就是多进程