我是靠谱客的博主 仁爱小白菜,最近开发中收集的这篇文章主要介绍想进大厂?你了解操作系统吗?概念进程补充每日一图,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概念

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

每日一图

 

最后

以上就是仁爱小白菜为你收集整理的想进大厂?你了解操作系统吗?概念进程补充每日一图的全部内容,希望文章能够帮你解决想进大厂?你了解操作系统吗?概念进程补充每日一图所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部