文章目录
- 1.操作系统的定位
- 1.硬件
- 2.驱动
- 3.操作系统内核
- 4.系统调用
- 2.进程
- 3.PCB中有哪些描述进程的特征
- 4.内存管理
1.操作系统的定位
先看一张图:
1.操作系统是最接近硬件的软件,是软件/硬件/用户之间交互的媒介;
2.操作系统起到一个管理的作用
1)对下,要管理硬件设备
2)对上,要给软件提供稳定的运行环境
1.硬件
硬件就是电脑上肉眼可以看见的设备,内存,硬盘…
2.驱动
对于不同的硬件,生产厂商也是千差万别,所以硬件出场的的时候开发商也会提供相关的驱动程序,电脑装了相关的驱动之后,才能让系统正确识别出该硬件
3.操作系统内核
操作系统内核起到一个管理的作用
1)对下,要管理硬件设备
2)对上,要给软件提供稳定的运行环境
4.系统调用
操作系统给应用程序提供一个API;
比如说,有个程序想要操作一下硬件设备,该程序就要先通过系统调用,把操作命令告诉内核,内核在调用驱动程序,进一步才能调用硬件设备
2.进程
什么是进程?
进程实体运行的过程就叫做进程(一个跑起来的程序就叫做进程)
进程是操作系统进行资源调度和分配的基本单位,所以每个进程都有自己的资源
进程是一个非常重要的软件资源,它是由操作系统内核管理的(由操作系统内核进行描述+组织的);
操作系统通过C语言的结构体对进程进行描述,该结构体有一个名字叫进程控制块(PCB)
操作系统通过一个双向链表将进程组织起来,就是把PCB串到一起
创建一个进程,就是创建一个PCB,并将PCB这个结构体插到链表中
销毁一个进程,就是把该进程对应的PCB从链表中删除
在任务管理器中查看进程列表,本质上就是遍历这个PCB链表
3.PCB中有哪些描述进程的特征
1.pid:进程的身份标识符,也是进程的唯一标识
2.内存指针:指向说自己的内存在哪里
3.文件描述符表:硬件上的其他资源
4.进程调度的相关属性:
1)进程的状态:
就绪态:进程随时都可以被调用到CPU上执行
运行态:进程正在CPU上执行
阻塞态:进程由于某些原因被调离内存,暂时无法回到内存(频繁的IO操作,读写数据)
2)进程的优先级
谁先执行,谁后执行,执行时间的长短都是由操作系统决定的
3)上下文
操作系统进行进程切换的时候,要记录下来进程的状态,下次这个进程再次被调用到CPU上的时候就可以恢复上次的状态,继续上次的执行
4)记账信息
统计每个进程在CPU上占用的时间和执行的指令条目,根据这个来决定下一阶段如何调度
4.内存管理
虚拟地址空间,我们程序中获取的地址,都不是真实存在于内存(硬件)上的地址空间,而是经过了一层抽象,虚拟出来的地址;
内存:可以想象成是一个宿舍楼,特里面有非常多的宿舍,每个宿舍的大小是1Byte,每个房间都有一个编号(101,102,103…),这个编号就是地址,这个地址就是物理地址;
每个进程都有自己对应的内存空间,如下图所示:
引入虚拟内存之前:
引入虚拟内存之后: