web---2.系统

目录

1.程序program  静态

2.进程process   动态

做好进程调度,面临什么问题?

二、需要对进程做个区分:那些可以分配CPU了,那些现在还暂时没有准备好


操作系统OS:

多用户-多任务场景   OS的主要职责就是协调——专门的软件来做协调工作

JobA  ia1 ia2 ia3..

JobB   ib1 ib2 ib3...

有了分时操作系统就不用等A全部执行完,再执行B

硬件(资源)会被多个任务“同时”访问

OS协调不同任务对硬件资源的访问

OS管理着硬件的资源,分配给不同的任务去使用

OS是一个管理(硬件/软件)资源的软件

OS是一个协调者(管理的含义就是做协调)

OS一个分配者,分配的主体就是任务。站在任务的角度,就是一切硬件资源都需要找OS申请后才能授权使用

OS原来,主要研究就是“管理学”,如何高效、低耗、稳定的进行资源的分配,协调工作以及在其中遇到的种种问题。

硬件资源cpu 内存 IO设备     协调者(管理者)OS      不同用户的不同任务 进程process


1.程序program  静态

一套做数据处理的步骤,程序=指令+数据

是一套静态的步骤     菜谱

2.进程process   动态

程序的一次执行过程(按照菜谱的依次做菜过程,动态)

一个程序理论上可以有多次进程,甚至可以同时执行(多个进程同时存在)

进程是程序运行阶段的视角主体。

站在OS实现的角度看,进程是OS进行资源分配的基本单位。

同一个进程中的资源是共享的,不同进程之间的资源,是隔离的

A进程只能访问A进程自己的资源(这里讨论内存),A进程无法访问B进程的资源(内存),更无法访问被OS直接管理的资源

可以把操作系统的职责做个简单的划分:

    1.OS进行CPU协调的模块——进程管理模块:主要负责进程的调度工作,主持不同进程在CPU运行的时间划分。实践中,OS需要负责把进程A从CPU上拿下来,把进程B放到CPU上。 via修改PC寄存器的值

CPU之前执行A进程的指令——通过修改PC,让CPU去执行属于B的指令——CPU去执行属于B进程的指令    进程管理

    2.OS进行内存协调的模块——内存管理模块:支持内存空间的分配工作——进程通信的问题

     内存管理

    3.硬盘最为主要的二级存储,是比较重要的一个IO设备——OS进行硬盘上的数据的协调模块

       OS一般不直接去管理硬盘上的数据,一般是委托文件系统进行抽象管理

       把硬盘上的数据抽象成文件(包含文件夹/目录)的概念   文件管理

    4.网络管理模块

     5.其他硬件——以文件驱动的形式进行管理——驱动管理

3.作业task

4.作业job


进程管理(进程调度) :负责CPU的管理,天然是以时间线作为主轴去理解(指令的执行)

  类比人们每天的时间作息

做好进程调度,面临什么问题?

一、需要把进程(程序执行的过程)这个抽象概念,用数据表示处理——面向对象的思想

变成数据,才能被计算机进行处理(才能被OS这个软件进行处理)通过数据结构组织起来管理

       1. 管理程序的信息(那个进程下的那个程序文件)

        2.关于运行的一些信息(那个用户启动的、进程工作目录)

          进程是何时开始的,何时结束

       3.分配资源

        CPU:CPU的占用率:之前过去的一段时间,分配给该进程的时间占比

         内存:分配出去的内存(内存不一定连续)

       4.调度时用到的信息

二、需要对进程做个区分:那些可以分配CPU了,那些现在还暂时没有准备好

      通过对进程做状态划分,来区分出处于不同情况下的进程 ——进程状态/状态的转义

     1.新建(进程处于正在创建中)随着程序的启动运行

      2.就绪(万物具备,只差cpu)

      3.运行(进程的指令真正在CPU运行着)进程被OS选中,并且分配了CPU

      4.阻塞(进程由于等待外部条件,所以暂时无法继续)

      5.结束(进程的所有指令执行结束,但PCB暂时保留,OS还需要做一些其他工作的)

进程的CPU必须经过OS系统分配才能得到

->新建:随着程序的启动运行

新建->就绪:进程的初始化工作完全完成(这个工作是由OS指令完成的)

就绪->运行:进程被OS选中,并且分配了CPU

运行->结束:进程的最后一条指令执行结束(main方法执行结束了)

运行->就绪:1.被高优先级的进程抢占了 2.时间片耗尽 3.进程可以执行一些OS提供的系统调用,主动放弃

运行->阻塞:等待一些外部条件:等待IO设备、进程休眠一段时间

阻塞->就绪:外部条件满足:IO数据来了、休眠时间到了

结束->:进程PCB彻底被OS回收了


三、现在手上有等待分配CPU的所有进程列表——就绪队列没下个问题,选择哪个进程上的CPU:

要求:要有消息、保证公平性、要让更紧急的任务被更紧急的处理、低成本解决...

先来先服务

优先级划分(进程PCB中需要管理一个优先级的属性)

短作业优先级

四、OS什么时候会介入进程调度:需要选择一个新的进程,进行CPU分配

    1.一个新的进程刚出于就绪状态时,当该进程的优先级较高时——具备这种能力的OS被称为抢占式(实时)

  2.运行状态的进程 ->结束   一个进程结束了

  3.OS每隔一段时间,会调度依次为:进程的时间片耗尽

  4.进程主动放弃CPU

       1.运行->阻塞

        2.运行->就绪

五、OS具体怎么进程切换:通过上下文切换——保护上一个进程的上下文+恢复下一个进程的上下文(contex)

上下文指的是:以PC寄存器所代表的一组寄存器中的值

保护上下文:把寄存器中的值,保存到内存的某个位置

恢复上下文:把内存中之前保护的值,写入寄存器中


由进程管理引出的OS概念:

1.并行parallel 和 并发concurrent

并行:进程真的同时在执行(微观角度的同一时刻,是多多个指令在执行的,所以只会在多CPU多核场景下)

并发:进程加的同时在执行(微观上,表现为一次只执行一个进程,但宏观上,多个进程在“同时”执行)

CPU正在执行的是普通进程的指令时,就进入到内核态。反之,正在执行的是普通进程的指令,就在用户态

管理的核心就是权限的划分。

内核态的指令权限高(所有的硬件都能直接访问)   可以访问所有内存

用户态的指令权限低(只能访问OS规定的资源)  只能访问进程自己的内存

CPU本身就有权限的开关,所以可以做到

用户态的性能较好,内核态的性能较差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值