概述
概念
操作系统(Operating System, OS):是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源分配,以提供给用户和其他软件方便的接口和环境的软件集合。
简单来说:操作系统协调不同任务对硬件资源的访问,一切硬件资源都需要找操作系统申请后才能被授权。
进程
概念
从用户的角度来看:进程是程序的一次执行过程(动态过程),一个程序可以进行多次执行(多个线程);甚至可以"同时"执行(多个进程同时存在)。
从操作系统的角度来看,进程是进行资源分配的最小单位。
换言之,同一个进程的资源是共享的(如果存在比进程更低级的单位,资源共享)。
不同进程之间的资源,是互相隔离的。
A进程只能访问自己的资源(内存);A进程无法访问B进程的资源(内存);更无法访问被OS直接管理的资源。
内存管理
操作系统对内存资源的分配,采用的是空间模式--不同进程使用内存中的不同区域,互相之间不会干扰
进程间通信
如上所述进程之间互相具有“隔离性”,但是在现代应用中,一个复杂的业务需求往往无法通过一个进程独立完成,需要要进程之间相互配合,所以进程之间就需要进行“信息交换”的需求
目前,主流操作系统提供的进程通信机制如下
1、管道 2、共享内存 3、文件 4、网络 5、信号量 6、信号
进程调度
概念
操作系统对CPU资源的分配,采用的是时间模式-----不同进程在不同时间段去使用CPU资源。
进程的数据化
一、需要把进程这个抽象的概念用数据表示处理,变成数据,才能被计算机进行处理。
class Process
{
0、pid(进程名全局唯一,不能出现重复)
1、关联程序的信息
2、关于运行的一些信息(用户、进程工作目录、开始时间、结束时间)
3、分配的资源
CPU:CPU的占用率:过去一段时间里,分配给该进程的时间占比
内存:分配出去的内存
}
进程的区分
新建(进程处于正在创建阶段)
就绪(创建完成,等待CPU的调用)
运行(进程中CPU正在执行的指令)
阻塞(进程由于外部条件,所以暂时无法继续)
结束(进程的所有指令执行结束,但PCB暂时保存)
新建:随着程序的启动运行
新建—>就绪:进程的初始化工作完全完成(由操作系统的指令完成)
就绪—>运行:进程被OS选中,并分配了CPU
运行—>结束:进程的最后一条指令执行结束
运行—>就绪:1、被高优先级的进程抢占了 2、时间片耗尽 3、进程执行OS提供的系统调用,主动放弃。
运行—>阻塞:等待一些外部条件:等待IO设备;进程休眠一段时间.....
阻塞—>就绪:外部条件满足:IO数据到达,休眠时间结束....
结束—>进程PCB彻底被OS回收了
如果站在OS的角度,同一时刻,处于不同状态的进程有多个
新建,就绪、结束、阻塞可能有n个进程,但是运行状态下只能有一个
就绪队列一般只有一个而阻塞队列,一般每个条件都可以有一个。
CPU的分配
要求:要有消息,要保证公平性,优先级高的由优先解决、低成本解决
例如:先来先服务 优先级划分 短作业优先级
进程调度的方式
进程调度的方式分为两种,分别是非剥夺式调度方式和剥夺式调度方式
非剥夺调度方式
该方式又称非抢占方式。该方式只允许进程主动放弃处理机。在运行过程中即使有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入阻塞态。这种方式实现简单,系统开销小,但是无法及时的处理紧急任务,适合于早期批处理系统。剥夺调度方式
该方式又称抢占方式。该方式允许进程处理机被剥夺。当有一个进程正在处理机上运行时,如果有一个更重要的进程需要使用处理机,操作系统会立即暂停正在运行的进程,将处理机分配给更重要的那个进程。这种方式实现相对复杂,但是可以优先处理紧急任务,也可以实现让各进程按时间片规划轮流执行相应的功能(通过时钟中断),适合于分时操作系统、实时操作系统。
操作系统实现进程切换
通过上下文切换——保护上一个进程的上下文+恢复下一个进程的上下文
保护上下文:把寄存器中值,保存到内存中的某个位置
恢复上下文:把内存中之前保护的值,写入寄存器中
补充
并行和并发
并行:围观角度的同一时刻,有多个值在执行(CPU多核)
并发:微观上,表现为一次只执行一个进程,但宏观上表现为多个进程“同时”执行
用户态和内核态
内核态的指令权限高(所有硬件和内存都可以访问)
用户态的指令权限低(只能访问OS规定的资源)
每日一图
最后
以上就是仁爱小白菜为你收集整理的想进大厂?你了解操作系统吗?概念进程补充每日一图的全部内容,希望文章能够帮你解决想进大厂?你了解操作系统吗?概念进程补充每日一图所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复