操作系统(第三周 第二堂)

简介: 操作系统(第三周 第二堂)



回顾

前一篇文章的重点在于操作系统的结构,从简单结构到UNIX结构(对程序功能进行分级,彼此不能跨域访问),最后到微内核结构(减轻内核的内存,将服务包装起来作为驱动程序等)

现代计算机多采用微内核结构,所以我们电脑在安装操作系统后,很多的驱动程序(音频、USB接口等驱动)需要自己去下载安装,否则便不能使用

进程管理(process)

进程理解(总结)

1、进程可以看作执行的程序,进程也就是程序的一种

2、进程就是操作系统对象,是程序运行的实例。程序只是被动的实体,如存在磁盘上的exe文件

3、进程执行需要分配其对应程序所需要的资源,如:内存、CPU、文件等

4、程序的运行必须保证顺序性,单通道程序靠硬件实现顺序执行,并发程序靠进程来保证顺序链的实现

5、利用shell去运行自己所写的程序实际上就是创建shell进程的子进程,运行程序

6、程序写好保存后只是存储在硬盘中的代码,只有运行后才会创建进程,才是平常所说的跑起来

7、进程创建后也存储在内存当中

进程

程序到进程

一张图说明一个程序是如何变为一个进程的:

从图中可以清楚地看到进程创建后会放到内存中

内存中的进程

当运行一个程序时,我们就在内存中保存这样一个进程作为程序的实例(程序运行实际的载体)

其中:

1、堆栈(stack):存储程序运行中的临时数据、函数参数和局部变量

2、堆(heap):存储程序运行中动态分配的内存

3、数据:存储程序运行中的全局变量

4、文本段:存储程序代码(二进制文件)

5、堆和堆栈中间的空白:堆和堆栈共享的空间,在程序运行后才会填充上

进程状态

进程在运行时会不停切换状态,用以实现多程序的并行

状态类型

新的(new):进程正在创建(还没创建成功)

运行(running):指令正在执行

等待(waiting):进程等待发生某个事件(如等待I/O指令完成)

就绪(ready):进程等待分配处理器(等待CPU处理)

终止(terminated):进程已经完成执行

状态转移

1、允许:允许一个程序,shell程序调用系统调用驱动,对程序进行检查,检查允许后建一个新的进程

2、调度器调度:在CPU空闲后会通知内核,内核在多个ready中选择一个调转到CPU执行

3、中断:一个进程正在运行过程中,此时另一个之前运行的进程的特定事件(输入输出事件)完成后,外设会发送中断信号给内核。内核在收到中断后,会在正常running程序的一个时钟周期后将其转为ready状态,先去执行之前运行的进程(中断优先!!)

4、I/O或事件等待:一个进程在运行中遇到I/O或特定事件则会进入等待状态,进入该状态之前会对现场进行保存

5、I/O或事件完成:当一个等待中的进程完成了I/O或特定事件则会发送中断信号给内核,同时由内核将其状态修改为ready

6、退出:进程运行完成后由运行变为终止状态

状态的修改必须由内核完成

进程控制块

为什么需要PCB?

进程存在内存中,内核为了方便自己对多个进程进行统一的调度和管理,会为多个进程创建目录,这个目录中放置的就是一个又一个进程的进程控制块(自己的类比,仅方便理解)

每创建一个进程后,内核会在自己内部创建这个进程对应的进程控制块(Process Control Block)进程控制块也称为任务控制块,因为每一个进程可以认为是计算机的一个任务

(上图中就是一个放在内核的内存块(内核中)中PCB的模型)

1、进程状态:记录进程的状态

2、进程编号:进程的pid值,进程检索、跳转时使用

3、程序计数器:记录程序运行到哪个步。计数器本身是一个寄存器,但是和程序并行时维持顺序性有直接的关系,故被分离

4、寄存器:进程状态转移是保存现场使用

5、内存界限:内核为每一个进程划分独立内存,这里记录这个内存的开始和结束位置。操作系统利用内存界限的映射,对每一个进程独立出一个内存空间并映射在相同地址空间(程序运行中所用的实际空间地址对程序员透明

6、打开文件列表:程序中打开文件时,会将文件的资料存储在PCB当中

总结

本文到这里就结束啦~~这堂课的内容较为杂乱、复杂,但是学一学拓展一下知识是非常好的呀~~

如果觉得对你有帮助,辛苦友友点个赞哦~

知识来源:操作系统概念(黑宝书)、山东大学高晓程老师PPT及课上讲解。不要私下外传

相关文章
|
1天前
|
NoSQL 安全 Shell
操作系统(第二周 第二堂)
操作系统(第二周 第二堂)
|
1天前
|
Unix API
操作系统(第三周 第一堂)
操作系统(第三周 第一堂)
|
1天前
|
监控 NoSQL Unix
操作系统总结(第二周 第一堂)
操作系统总结(第二周 第一堂)
|
1天前
|
消息中间件 算法 调度
操作系统(第四周 第二堂)
操作系统(第四周 第二堂)
|
1天前
|
存储 程序员 调度
操作系统(第四周 第一堂)
操作系统(第四周 第一堂)
|
1天前
|
存储 缓存 前端开发
操作系统总结(第一周)
操作系统总结(第一周)
|
1天前
|
算法 调度
今年十八,期末速刷(操作系统篇1)
今年十八,期末速刷(操作系统篇1)
43 0
|
1天前
|
存储 安全 调度
计算机操作系统-第七天
计算机操作系统-第七天
|
分布式计算 安全 算法
操作系统的奋斗(一)计算机系统概述
操作系统的奋斗(一)计算机系统概述
201 0
操作系统的奋斗(一)计算机系统概述
|
Linux API
操作系统实验九 proc文件系统的实现(哈工大李治军)(一)
操作系统实验九 proc文件系统的实现(哈工大李治军)(一)
195 0
操作系统实验九 proc文件系统的实现(哈工大李治军)(一)