想进大厂?你了解操作系统吗?

概念

操作系统(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规定的资源)

每日一图

 

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值