秋招准备之——计算机操作系统

秋招复习笔记系列目录(不断更新中):

一、操作系统概述

1.1 操作系统的基本概念

1. 概念

操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境的程序集合。

2. 操作系统的特征

两个最基本的特征:

  • 并发: 指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此操作系统具有处理和调度多个程序同时执行的能力。引入进程的目的是使程序能并发执行
  • 共享: 指系统中的资源可供内存中多个并发执行的进程共同使用。分为两种方式:
    • 互斥共享: 在一段时间内只允许一个进程访问资源。一段时间内只允许一个进程访问的资源称为临界资源或独占资源
    • 同时访问方式: 允许一段时间内由多个进程“同时”访问,同时是宏观的,微观上,可能是交替执行的

其他特征:

  • 虚拟: 指把一个物理上的实体变为若干个逻辑上的对应物。虚拟技术可以分为时分复用技术和空分复用技术。
  • 异步: 多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进。

3. 操作系统的目标和功能

  • 计算机系统资源管理: 包括对以下资源的管理:
    • 处理机管理: 即对进程的管理,包括进程的创建、销毁、冲突避免等。主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。
    • 存储器管理: 主要包括内存分配、地址映射、内存保护与共享、内存扩充
    • 文件管理: 即文件系统的管理,包括文件存储空间的管理、目录管理以及文件读写管理和保护。
    • 设备管理: 主要任务是完成I/O请求,方便用户使用各种设备,提高设备的利用率。主要包括缓冲管理、设备分配、设备处理和虚拟设备等。
  • 作为用户与计算机硬件系统之间的接口: 提供接口给用户使用,包括命令接口和程序接口:
    • 命令接口: 用户利用操作命令来组织和控制作业执行
    • 程序接口: 编程人员使用编程接口来请求操作系统服务。
  • 用作扩充机器: 覆盖了软件的机器称为扩充机器,又称为虚拟机。

1.2 操作系统的运行环境

1.操作系统的运行机制

  • 操作系统内核的内容:
    • ①时钟管理: 对系统时间的管理,一方面用于计时,另一方面通过时钟中断管理,实现进程切换。
    • ②中断机制: 在系统中起通信网络的作用,以协调外部事件的响应和处理。
    • ③原语: 将具有以下特点的底层公用小程序称为原语:
      • 处于操作系统最底层
      • 运行具有原子性
      • 运行时间很短且调用频繁
    • ④系统控制的数据结构及处理: 包括一些用来登记状态信息的数据结构,以及进行诸如进程管理、存储器管理、设备管理等的操作。

2.中断和异常

用户态和核心态的切换,需要用到中断或异常实现,包括两种类型:

  • 外中断(中断): 来自CPU执行指令以外的事件的发生,如设备发出的I/O结束中断、时钟中断等。
  • 内中断(异常): 来自CPU执行指令内部的事件,如程序的非法操作码、地址越界等事件。
  • 陷阱: 在用户程序中使用系统调用

3.系统调用

系统调用命令按照功能分为:设备管理、文件管理、进程控制、进程通信、内存管理

总结: 系统运行环境可以理解为,用户通过操作系统运行上层程序,而上层程序依赖于操作系统底层管理和程序提供服务支持,当需要管理程序服务时,系统则通过硬件中断机制或异常处理进入核心态。当管理程序结束时,通过相应的保存程序现场退出中断处理程序或异常处理程序,返回中断点,继续执行上层程序。
在这里插入图片描述

1.4 操作系统的体系结构——大内核和微内核

  • 大内核: 大内核是将操作系统主要功能模块都作为一个紧密结合的整体运行在核心态,具有很高的性能。
  • 微内核: 由于操作系统不断复杂,因此将一部分操作系统功能移出内核,从而降低内核的复杂性。移出的部分根据分层的原则划分成若干服务,相互独立。在微内核结构下,操作系统被划分成小的、定义良好的模块,只有微内核这一个模块运行在内核态,其余模块运行在用户态。因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失。

二、进程管理

2.1 进程和线程

1.进程

  • 基础概念:
    • 进程控制块: 为了使参与并发执行的程序(含数据)能独立运行,必须为之配置一个专门的数据结构,称为进程控制块(PCB)。系统利用PCB来描述进程的基本情况和运行状态,进而控制和管理进程。
    • 进程映像: 程序段、相关数据段和PCB构成进程映像(进程实体)
  • 进程的概念: 程序的一次执行过程,或者说,是进程实体的一次运行过程,是系统进行资源分配和调度的一个独立单位
  • 进程的特征:
    • ①动态性: 是进程的最基本特征。进程是程序的一次执行,有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化和消亡的。
    • ②并发性: 多个进程在一段时间内能同时执行。引入进程的目的就是为了程序与其他进程的程序并发执行,以提高资源利用率
    • ③独立性: 进程实体是一个能独立运行、独立获得资源和独立接收调度的基本单位。
    • ④异步性: 由于进程的相互制约,使进程具有执行的间断性,即按照各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,因此在操作系统中必须配置相应的进程同步机制。
    • ⑤结构性: 每个进程都要配置一个PCB对其进行描述,从结构上看,进程实体是由程序段、数据段和进程段三部分组成的。

2.进程的状态和转换

进程通常有以下五种状态:

  • ①运行状态: 进程在处理机上运行
  • ②就绪状态: 进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行
  • ③阻塞状态: 又称等待状态,进程正在等待某一事件而暂停,如等待资源可用或输入输出完成等
  • ④创建状态: 进程正在被创建,尚未转到就绪状态。创建的步骤为:申请PCB->向PCB中填写控制管理进程的信息->系统分配资源->将进程转到就绪状态
  • ⑤结束状态: 正在退出,结束运行
    在这里插入图片描述

3.进程控制

进程控制包括进程创建、进程终止、进程阻塞和唤醒、进程切换

  • 进程创建(创建原语): 进程的创建如下:

    • ①为进程分配一个进程ID,并申请一个空白的PCB
    • ②为进程分配资源,为新进程的程序和数据,以及用户栈分配必要的内存空间。如果内存空间不足,会进入阻塞状态而不是创建失败
    • ③初始化PCB,主要包括初始化标志信息,初始化处理机状态信息和控制信息,以及设置进程的优先级。
    • ④进入进程就绪队列,等待被调度。
  • 进程终止(撤销原语): 引起进程终止的情况有正常结束异常结束两种。进程终止的过程为:

    • 根据进程ID,检索PCB,从中读出进程的状态
    • 若终止进程处于执行状态,立即终止执行,并将资源分给其他进程
    • 若终止进程还有子进程,则应使其所以子进程终止
    • 将进程拥有的所有资源,归还给父进程或操作系统
    • 将PCB从所在队列中删除
  • 进程的阻塞和唤醒

    阻塞的过程为:

    • 找到要阻塞进程的ID及PCB
    • 若进程为运行状态,则保护现场,并将其标志为阻塞状态,停止其运行
    • 将PCB插入等待队列中

    唤醒的过程:

    • 找到唤醒进程的ID及PCB
    • 将其从等待队列中移除,设置为就绪状态
    • 将PCB插入就绪队列中,等待调度程序调度
  • 进程切换: 指处理机从一个进程的运行状态转到另一个进程上运行,过程如下:

    • 保存处理机上下文、包括程序计数器和其他寄存器
    • 更新PCB信息
    • 把进程的PCB移入相应队列,如就绪、等待
    • 选择另一个进程执行,并更新其PCB
    • 更新内存管理的数据结构
    • 恢复处理机上下文

4.进程的组成

进程一般由三个部分组成:

  • 进程控制块(PCB): PCB是描述进程基本情况和运行状态的数据结构,是进程存在的唯一标志。通常包含以下信息:
    在这里插入图片描述
  • 程序段: 程序段是内被进程调度程序调度到CPU执行的程序代码段,可被多个进程共享
  • 数据段: 可以是进程对应的程序加工处理的原始数据,也可以是程序执行时产生的中间或最终结果。

5.进程的通信

进程通信指进程间的信息交换,高级通信方法分为三类:

  • 共享存储: 通信的进程之间存在一块可直接访问的共享空间,通过对这块空间进行读写操作实现进程之间的信息交换。
    在这里插入图片描述
  • 消息传递: 消息传递系统中,进程间的数据交换是以格式化的消息为单位的,若通信间的进程不存在共享空间,则必须用消息传递的方式实现进程通信。通信方式包括直接通信和间接通信方式。
    在这里插入图片描述
  • 管道通信: 是消息传递的一种特殊方式。管道指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。发送方通过发送进程向管道中以字符流方式写管道,而接收方通过接收进程从管道中读数据。管道为半双工通信模式

6.线程的概念和多线程模型

  • 线程的概念: 线程是一个轻量级进程,是一个基本的CPU执行单元,也是程序执行流的最小单元。由线程ID、程序计数器、寄存器集合和堆栈组成。线程是进程中的实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,但可与同属一个进程的多个线程之间共享进程所拥有的全部资源。也有就绪、阻塞、运行三种状态。
  • 线程与进程的比较:
    • ①调度: 同一进程中,线程切换不会引起进程切换,而不同进程中的线程切换则会引起进程切换。
    • ②拥有资源: 进程是拥有资源的基本单位,而线程是独立调度的基本单位。进程不拥有系统资源,但可以访问隶属进程中的系统资源。
    • ③并发性: 进程可并发,线程也可并发,从而提高了系统的吞吐量
    • ④系统开销: 进程的切换开销大,同一进程中的线程切换开销很小
    • ⑤通信: 进程间的通信需要共享通信、消息传递来实现,而线程间的通信可直接通过读写进程数据段(如全局变量)来实现。
  • 线程的实现方式: 线程的实现分为两类:用户级线程内核级线程
    • 用户级线程: 线程的管理工作都由应用程序完成,内核意识不到线程的存在。通常,应用程序从单线程开始,然后通过调用线程库中的派生例创建一个在相同进程中运行的新线程。
    • 内核级线程: 线程的管理工作由内核完成,只为用户提供调度接口。
  • 11
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MeteorChenBo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值