操作系统概述

文章目录

1.1 关于现代操作系统的四种基本观点

什么是操作系统

在这里插入图片描述

关于现代OS的四种基本观点

在这里插入图片描述

  • User/Computer Interface :该观点认为OS是计算机用户使用计算 机系统的接口,它为计算机用户提供了方便的工作环境。
  • Virtual Machine :该观点认为OS是建立在计算机硬件平台上的虚 拟机器,它为应用软件提供了许多比计算机硬件功能更强或计算机 硬件所没有的功能。
  • Resource Manager:该观点认为OS是计算机系统中各类资源的管 理者,它负责分配、回收以及控制系统中的各种软硬件资源。
  • Job Organizer:该观点认为OS是计算机系统工作流程的组织者, 它负责协调在系统中运行的各个应用软件的运行次序。

1.2 现代操作系统功能和非功能性需求

1.2.1软件系统的需求

所谓软件系统的 系统需求 是指,人们从软件系统的外部对软件系统提出的诸多期望。 这些期望包括三种类型:

  • 软件系统能提供的服务;
  • 软件系统在提供这些服务时,需要满足的限制条件;
  • 软件系统具有适应某些变化的能力。
    第一类系统需求是后两类系统需求赖以存在的基础, 称之为软件系统的功能性需求, 后两类系统需求称为软件系统的非功能性需求
1.2.2 OS的功能性需求
  • 计算机用户需要的用户命令

    由OS实现的所有用户命令所构成的集合常被 人们称为OS的Interface(用户接口);有时也 称为命令接口。

  • 应用软件需要的System Call(系统调用)
    由OS实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口(Application Programming Interface, API)。

Interface

(用户)命令:指计算机用户要求计算机系统为其工作 的指示。

• 命令的表示形式:字符形式 菜单形式 图形形式
• 命令的使用方式:联机使用方式(on-line) 脱机使用方式(off-line)
脱机和联机的区别:是否需要 CPU 去执行,联机需要,脱机不需要。

System Call

• System Call:指由OS实现的应用软件在运行过程中可以引 用的System Service。
• 当前两种常用的API:POSIX.1、WIN32 API

1.2.3 OS的非功能性需求

• Performance (性能)or Efficiency (效率)

吞吐量,响应时间, and in the case of time sharing, 尽可能多的满足多用户

• Fairness (公平性)

give equal and fair access to all processes

• Reliability (可靠性)
• Security (安全性)
• Scalability(可伸缩性)
• Extensibility(可扩展性)
• Portability(可移植性)

1.2.4 OS对硬件平台的依赖

• Timer 定时器
• I/O Interrupts 中断
• DMA or Channel
• Privileged Instructions 特权指令
• Memory Protection Mechanism 内存保护机制

基本概念:Job(作业)

• Job是指,计算机用户在一次上机过程中要 求计算机系统为其所做工作的集合;作业中 的每项相对独立的工作称为作业步
• 通常,人们用一组命令来描述作业;其中, 每个命令定义一个作业步

Job Control Language (JCL)

• Special type of programming language 特殊的程序设计语言
• Provides instruction to the monitor(监控程序) 向监视器提供命令

  • – what compiler to use 用什么编译器
  • what data to use 使用什么数据
作业的基本类型

• Off-line Job:计算机用户不能在此类作业被计算机系统处理时改变已定义好的作业步。
• On-line Job:计算机用户可以在此类作业被 计算机系统处理时随时改变其作业步

基本概念:Thread & Process

Thread是指,程序的一次相对独立的运行过程;在 现代OS中,线程是 系统调度的最小单位
Process是指,系统分配资源的基本对象;在现代OS 中,进程仅仅是系统中 拥有资源的最小实体 ;不过, 在传统OS中,进程同时也是系统调度的最小单位。

基本概念:Virtual Memory & File

Virtual Memory(虚拟存储),简单地说,就是进程的逻辑地址空 间;它是现代OS对计算机系统中多级物理存储体系进行高度抽 象的结果。
File(文件),简单地说,就是
命名了的字节流
;它是现代OS对 计算机系统中种类繁多的外部设备进行高度抽象的结果。

1.3 操作系统的发展、类型及特征

Ease of Evolution of an Operating System

• Fixes(修改)
• New Services
• Hardware Upgrade Plus New Types of Hardware
• Efficiency

Serial Processing(串行处理)

• No operating system
• Machines run from a console with display lights and toggle switches, input device, and printer. Two main problems: – Scheduling: waste processing time.
– Setup time: Setup included loading the compiler, source program, saving compiled program, and loading and linking.

Simple Batch Systems(简单批处理系统)

• Monitors(监督程序):Software that controls the running programs
– Resident monitor is in main memory and available for execution
• Batch jobs together
• Program branches back to monitor when finished

Uniprogramming (单道程序设计)

• Processor must wait for I/O instruction to complete before proceeding.
• Be inefficient.

Multiprogramming (多道程序设计)

一个支持 Multiprogramming 的系统允许多道程序同 时准备运行;当正在运行的那道程序因为某种原因 (比如等待输入或输出数据)暂时不能继续运行时, 系统将自动地启动另一道程序运行;一旦原因消除 (比如数据已经到达或数据已经输出完毕),暂时 停止运行的那道程序在将来某个时候还可以被系统 重新启动继续运行。
在这里插入图片描述

Multiprogramming 带来的烦恼

• Improper synchronization (不同步)

  • ensure a process waiting for an I/O device receives the signal 等待 I/O设备的信号量

• Failed mutual exclusion(互斥失败)
• Nondeterminate program operation 执行操作的不确定性

– program should only depend on input to it 然而程序的结果只应该依赖于输入

• Deadlocks(死锁)

Time Sharing(分时系统)

• Using multiprogramming to handle multiple interactive (交互)jobs 。 使用多程序设计处理多个交互的工作。
• Processor’s time is shared among multiple users 。 处理器的时间共享在多个进程间共享。
• Multiple users simultaneously(同时) access the system through terminals。 多用户同事通过终端来访问。

Batch Multiprogramming vs Time Sharing (多道批处理系统与分时系统比较)

在这里插入图片描述
目标:一个追求吞吐量 另一个追求响应时间
指令来源: 一个来源于作业的作业步,另一个来自用户终端输入的命令

现代OS的基本类型

按硬件平台系统结构分类:
• 单机OS
• 并行OS
• 网络OS
• 分布式OS

单机OS的基本类型

按功能特征分类:
• Batch_Processing OS(批处理系统)
• Time_Sharing OS(分时系统)
• Real_Time OS(实时系统)

现代OS的两个基本特征

任务共行

  • 从宏观上看,任务共行是指系统中有多个任务同时运行
  • 从微观上看,任务共行是指单处理机系统中的任务并发 (Task Concurrency:即多个任务在单个处理机上交替运行)或 多处理机系统中的任务并行(Task Parallelism:即多个任务在 多个处理机上同时运行)。

资源共享

  • 从宏观上看,资源共享是指多个任务可以同时使用系统中的 软硬件资源
  • 从微观上看,资源共享是指多个任务可以交替互斥地使用系 统中的某个资源。
任务管理模型

所谓Task是指,计算机系统在某个资源集合 上所做的一次相对独立的计算过程。
• 在现代OS中,任务用线程和进程这两个基本概念共同表示; 在传统OS中,任务仅仅用进程这一基本概念表示。
• 在现代OS中,任务管理模型用线程状态转换图表示;在传 统OS中,任务管理模型用进程状态转换图表示。

资源管理模式

所谓Resource是指,由程序和数据组成的软件资源以及包含CPU存储器I/O设备等在内的硬件资源
• 通常情况下,系统用竞争模式管理软件资源;为此,系统将为共享同一软件资源的多个任务提供互斥机制。
• 对于硬件资源,系统常常用分配模式加以管理。该模式可以描述为:

申请——分配——使用——释放——回收

1.4 现代操作系统体系结构基础知识

在这里插入图片描述

1.4.1 一种常见的OS总体结构风格

在这里插入图片描述

  • 大多数现代OS其总体结构包含两类子系统:一是用户接口 子系统,二是基础平台子系统。其中,用户接口子系统提供计算机用户需求的用户命令,基础平台子系统提供应用 软件需求的系统调用。
  • 用户接口子系统与基础平台子系统之间的相互关系具有单向性。具体地说,用户接口子系统在实现各种用户命令时 能够引用基础平台子系统所提供的各种系统调用,但基础平台子系统在实现各种系统调用时不会引用用户接口子系 统所提供的各种用户命令。
1.4.2 OS基础平台子系统结构风格
常见的基础平台子系统结构风格(一)
  • Layered Structural Style(分层结构风格)
  • Hierarchical Structural Style(分级结构风格)
  • Modular Structural Style (分块结构风格)
分层结构风格的结构特征

比如 OSI 七层模型

  • 使用分层结构风格的基础平台子系统结构包含 若干layer(层);其中,每一层实现一组基 本概念以及与其相关的基本属性。
  • 层与层之间的相互关系:
    所有各层的实现不依赖其以上各层所提供的概念及 其属性,只依赖其直接下层所提供的概念及属性;
    每一层均对其上各层隐藏其下各层的存在
分级结构风格的结构特征
  • 使用分级结构风格的基础平台子系统结构包含若干level(级); 其中,每一级实现一组基本概念以及与其相关的基本属性。
  • 级与级之间的相互关系:
    所有各级的实现不依赖其以上各级所提供的概念及属性, 只依赖其以下各级所提供的概念及属性。
分块结构风格的结构特征
  • 使用分块结构风格的基础平台子系统结构包含若干module(模 块);其中,每 一块实现一组基本概念以及与其相关的基本属性。
  • 块与块之间的相互关系:
    所有各块的实现均可以任意引用其它各块所提供的概念及属性。
分层、分级、分块结构风格的关系
  • 分层结构风格是一种特殊的分级结构风格;
  • 分级结构风格是一种特殊的分块结构风格
分层、分块结构风格的比较
  • 分层结构风格
    有利于实现基础平台子系统的可维护性、可扩展性、可移植性、部件 可重用性等非功能性需求;
    不利于提高基础平台子系统的时间和空间效率;
    构造一个纯粹的分层结构将非常困难。
  • 分块结构风格
    构造一个分块结构是一种切合实际的做法;
    有利于生成高效、紧凑的基础平台子系统可执行代码;
    不利于实现基础平台子系统的灵活性。
常见的基础平台子系统结构风格(二)
  • Multi-Mode Structural Style(多模式结构风格)
  • Single-Mode Structural Style(单模式结构风格)
基本概念: Mode(模式)

所谓模式,简单地说,就是程序在运行过程中使用的、由硬件体系结构提供的CPU特权模式。

多模式结构风格的结构特征
  • 使用多模式结构风格的基础平台子系统结构包含多个模式模块;这些模式模块或者是一个应用软件或者是基础平台子系统的一部分。
  • 在使用多模式结构风格的基础平台子系统结构中,不同的模式模块在不同的CPU特权模式下运行。
单模式结构风格的结构特征
  • 使用单模式结构风格的基础平台子系统结构仅仅包含 一个模式模块;该模式模块由应用软件和基础平台子系统共同组成。
  • 在使用单模式结构风格的基础平台子系统结构中,应用软件和基础平台子系统在同一CPU特权模式下运行。
多模式结构风格与单模式结构风格的比较
  • 多模式结构风格
    有利于实现基础平台子系统的可靠性、安全性等非功能性需求;
    会降低基础平台子系统的性能;
    在较高级别CPU特权模式下调试程序是一件困难的事情。
  • 单模式结构风格
    不会增加基础平台子系统的开发难度;
    不会影响基础平台子系统的性能;
    不利于实现基础平台子系统的可靠性、安全性等非功能性需求。
1.4.3 双模式基础平台子系统结构风格
  • 若一个基础平台子系统使用了双模式结构风格, 则称该基础平台子系统为双模式基础平台子系统。
  • 习惯上,人们把双模式基础平台子系统的这两个模式 模块分别称为核外子系统和核心子系统;把核外子系统所使用 的CPU特权模式称为User Mode ,把核心子系统所使用的CPU 特权模式称为 Kernel Mode
  • 双模式基础平台子系统总体结构风格
Microkernels(微核)结构
  • 微核结构设计思想:
    尽最大努力剔除核心子系统中的多余成份,并把它们移到核外子系统中实现,核心子系统只实现一些必要的简单的概念及其属性,从而保持核心子系统简洁高效。

例如这些子系统

  • device drivers
  • file systems
  • virtual memory manager – windowing system
  • security services
  • 3
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值