操作系统原理学习笔记(基础概念与进程)

学习视频
王道的操作系统原理,我在网上搜了一下,没有那个视频像湖科大那种推荐的人那么多,感觉这个还可以,就看这个了。

随看随记

  • 进程运行前需要将需要执行的程序放置到内存中,内存再到CPU中执行程序。
  • 我认为.java文件不是系统调用,因为系统无法直接调用.java文件,只能调用.class文件。但是我没百度到,后面再说吧。
  • 读者写者问题有点难度,如果后面有需要再看吧。

操作系统基础

操作系统的概念、功能和目标

  • 操作系统层是一种中间层的概念,提供管理硬件和软件(为每一个软件分配部分硬件的性能),同时对上提供服务。操作系统是软件!!!!!
  • 在这里插入图片描述

系统资源的管理者(管理硬件和软件)

  • 管理硬件:处理机(CPU)管理、存储器(内存、外存)管理、设备(IO)管理。
  • 管理软件:文件管理(fastDFS)

在这里插入图片描述

用户和计算机硬件之间的接口

在这里插入图片描述

  • 联机命令接口指的是命令行,例如:CMD、powershell。
  • 脱机命令接口指的是批处理文件,例如:.bat文件。
  • 程序接口指的是.dll文件,通过用户程序间接调用。系统调用=系统调用命令=广义指令。
  • 在这里插入图片描述

对计算机硬件的扩展

  • 在这里插入图片描述

小结

  • 在这里插入图片描述

操作系统的特征

  • 并发和共享是操作系统的基本特征。
  • 在这里插入图片描述

并发与并行

  • 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观.上是交替发生的。单个CPU同时执行多个进程。
  • 并行:指两个或多个事件在同一时刻同时发生。
  • 在这里插入图片描述

共享

  • 互斥共享方式:一个时间段内只允许单个进程访问。
  • 同时共享方式:允许一个时间段内“同时”对他进行访问。(微观上是分时复用的)
  • 在这里插入图片描述
  • 并发性和共享性是互为存在的条件的
  • 没有并发性,则共享性无法同时执行微信和QQ两个进程,只能运行一个进程。
  • 没有共享性,则并发性无法“同时”访问硬盘文件,也无法同时执行微信和QQ两个进程,只能运行一个进程。
  • 在这里插入图片描述

虚拟

  • 虚拟是指把一个物理上的实体变为若千个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
  • 内存为4G,但是同时运行了超过4G内存的程序,使用了“空分复用技术”。对空间进行复用。
  • 单核CPU同时运行很多文件,使用了时分复用技术,微观上是交替运行各种进程的服务。
  • 各种复用技术都是在并发性的基础上才能实现的。因此没有并发性就没有虚拟性。
  • 在这里插入图片描述

异步

  • 异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
    在这里插入图片描述

小结

  • 在这里插入图片描述
  • 我认为并发性是"同时"执行指令,共享性是“同时”访问数据,两者缺一不可,对于虚拟和异步更关心“同时”执行与访问,因此并发和共享是最基本特征。

操作系统的发展与分类(了解,随便看看看)

  • 手工操作阶段 -> 单批道处理系统 -> 多批道处理系统 -> 分时操作系统 -> 实时操作系统
  • 手工到单批道解决了输入速度的问题,多批道使用并发和共享进一步提高了处理器速度,分时操作系统提供了人机交互界面,实时操作提供了程序运行的优先级等。
  1. 手工打点丝带传入程序,输入的速度低于CPU处理速度。
  2. 将打点丝带的程序传给磁带中,磁带的速度高于丝带但是仍然低于CPU的处理速度。(操作系统的雏形)。手工丝带和单批道都是一个时间段只能处理一个程序,不具有并发和共享性。
  3. 磁带同时将多个程序传递给CPU中处理程序,可以同时处理多个程序,具有了操作系统的并发性和共享性。(操作系统出现)但是仍然具有没有i人机交互功能的缺点。
    在这里插入图片描述
    在这里插入图片描述
  4. 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
    主要缺点:不能优先处理一 些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户作业服务一个时间片,不区分任务的紧急性。
  5. 实时操作系统:主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
    在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。
    在这里插入图片描述
  6. 其他几种操作系统
    网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。 (如: Windows NT就是典型的网络操作系统,网站服务器就可以使用).
    分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。.
    个人计算机操作系统:如Windows XP、 MacOS, 方便个人使用。

小结

在这里插入图片描述

操作系统的运行机制与体系结构

运行机制

在这里插入图片描述

  • 相当于管理员状态和用户状态 root 和 普通
  • 两种处理机状态(通过PSW(程序状态字)中的某个标志为来标识当前处理器处于什么状态):核心态(管态)、用户态(目态)。
  • 两种指令(CPU能够识别和执行的最基本的命令): 特权指令、非特权指令。
  • 两种程序:内核程序、应用程序。
  • 核心态能够执行两种指令,调用两种程序。用户态只能执行非特权指令,和应用程序。
  • 内核程序执行两种指令运行在核心态、应用程序只能执行非特权指令运行在用户态。

操作系统内核

  • 下图所示,其中操作系统包括三个部分:绿色层,红色层和黄色层(包括棕色)。
  • 不同的操作系统将内核的划分也不同,有的包括红色层和黄色层,称为大内核。有的只包括与硬件关系紧密的黄色层,称为微内核。
  • 原语是硬件能够直接读懂的语言,具有原子性,其运行只能一气呵成,不能中断。
  • 在这里插入图片描述
  • 在这里插入图片描述

操作系统体系结构

  • 在这里插入图片描述
  • 微内核更像是一种封装的思想,其目的是面对越来越多需要开发的应用程序,提供了抽象的接口。

小结

  • 在这里插入图片描述

中断与异常

中断的流程

  • 中断的本质是需要操作系统接入,开展管理工作。
  • 操作系统从用户态转换到核心态只能通过中断,从核心态转换到用户态不需要中断,修改PSW相关标志位就可以了。
  • 假设有三个程序需要执行,如下图所示,开始在用户态,正在执行程序1,并且时间片已经用完,马上执行程序2。
  • 在这里插入图片描述
  • CPU收到终端信号,CPU状态从用户态切换到核心态,处理中断。
  • 在核心态下,操作系统内核对中断信号进行处理,不执行程序1,执行程序2,同时CPU状态切换回用户态。
  • 在用户态下,程序2执行,发现需要打印机,发出系统调用(内中断信号),请求输出。
  • 操作系统从用户态切换到核心态,处理中断信号。
  • 在核心态下,操作系统命令打印机工作,等待I/O。同时,切换到程序3运行,同时CPU状态切换回用户态。
  • 在用户态下,在程序3执行期间,打印机准备就绪,像CPU发出中断信号。
  • CPU接收到中断信号,CPU状态从用户态切换为核心态,处理中断。
  • 操作系统恢复程序2的执行,从程序3切换到程序2,完成后续的工作,同时CPU状态切换为用户态。

中断小结

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理,
  • 发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。.
  • 用户态、核心态之间的切换是怎么实现的?
    答: “用户态→核心态”是通过中断实现的。并且中断是唯一途径。
    “核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。

中断的分类

  • 两种是差不多的,只是将硬件故障和软件故障合并到一个里面了
  • 外中断是CPU给出的中断信号:包括外设和人工干预。
  • 内中断是程序给的中断信号(也被称为异常):自愿中断和上个例子中的请求打印机是一个意思,硬件故障比如缺页,软件中断是我们程序中的error。
  • 第一种
  • 在这里插入图片描述
  • 第二种
  • 在这里插入图片描述

外部中断执行的历程(详见计算机组成原理)

在这里插入图片描述

小结

在这里插入图片描述

系统调用

  • 应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一 掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
  • 在这里插入图片描述

系统调用与库函数

  • 说白了系统调用比库函数更底层,应用程序的调用库函数中的函数,库函数调用系统调用,从而调用操作系统。
  • 库函数对系统调用进行了封装,使之变成可以通过高级语言可以理解的方式。

在这里插入图片描述

系统调用背后的过程

  • 陷入指令是在用户态执行的,引发内中断,使得CPU进入核心态。
  • 发出系统调用是在用户态,处理系统调用是在核心态。
  • 陷入指令是唯一一个仅可以在用户态使用,不可以在核心态使用的指令。
    在这里插入图片描述

小结

在这里插入图片描述

进程

基础

进程的定义、组成、组织方式

进程的定义
  • 程序段。数据段。PCB三部分组成了进程实体(进程映像)。-般情况下。我们把进程实体就简称为进程。
    例如,所谓创建进程,实质上是创建进程实体中的PCB:而撇销进程。实质上是撒销进程实体中的PCB.
    注意: PCB是进程存在的唯一标志!进程强调“动态性“
    从不同的角度,进程可以有不同的定义。比较传统典型的定义有:
  1. 进程是程序的-一次执行过程。
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
  3. 进程是具有独立功能的程序在数据集合上运行的过程。它是系统进行资源分配和调度的一个独立单位
  • 引入进程实体的概念后,可把进程定义为:进程是进程实体的运行过程。是系统进行资源分配和调度的一个独立单位。
    注。严格来说,进程实体和进程并不一样, 进程实体是静态的,进程则是动态的。不过,除非专门考察二者区别,否则可以认为进程实体就是进程。因此我们也可以说“进程由程序段、数据段、PCB三部分组成。
    -在这里插入图片描述
    在这里插入图片描述
进程的组成
  • PCB中包含了所有操作系统需要操作进程的数据。
    在这里插入图片描述
进程的组织方式
  • 链接方式
  • 执行指针指的是目前正在执行
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值