notebooks
  • notebooks
  • _planning
    • 2022 OKR
    • basketball
    • swimming
  • communication
    • Dubbo
    • Kafka
    • Messaging
    • RPC
    • Thrift
  • computation
    • map-reduce
  • cs-basic-knowledge
    • computer-architecture
    • data-structure-and-algorithms
    • networks
    • os
  • devops
    • Docker
    • Linux
    • Prometheus
    • operations
    • security
    • trouble-shooting
  • distributed-knowledge
    • Zookeeper_CMD
    • distributed-system
  • game-engine
    • Unity
  • others
    • appium使用
  • protocols
    • http(s)协议
    • 官方链接
    • sip
  • storage
    • Elasticsearch
    • GuavaCache
    • MySQL
    • MySQL_CMD
    • NoSQL
    • Redis
    • Redis_CMD
  • system-design
    • system-design
  • tools
    • Git
    • IDEA
    • Mac
    • VScode
    • Vim
  • _working
    • doc-template
      • backend-design-review
      • correction-of-error
      • service-review
    • process
      • domain-backup
      • oncall
  • blogs
    • history
      • 8088/8086微处理器
      • 8088/8086指令系统
      • CSS-DOM
      • CSS定位
      • CSS工作原理
      • CSS控制背景
      • CSS浮动布局
      • CSS盒模型
      • Chrome开发者工具使用方法
      • DOM
      • Django Model模型层学习
      • Django-REST-framework Serializers学习
      • Django-REST-framework Views和ViewSets学习
      • Django View视图层学习
      • Gvim下Emmet安装及使用教程
      • HTTP协议简介
      • HashMap原理初探
      • JavaScript简史
      • JavaScript语法
      • Java内存模型和GC机制
      • Java基础——Lambda学习
      • Java基础——方法引用
      • Java基础——枚举类型
      • Java类加载机制
      • KMP算法
      • Kafka学习
      • Linux下用命令行编译Java程序
      • MathJax简介和基本用法
      • Python实现常见数据结构
      • Python装饰器总结
      • TCP协议的三次握手和四次挥手
      • Thrift学习
      • asyncio学习
      • markdown的常用语法
      • 修改hosts文件实现翻墙
      • 充实文档的内容
      • 关系数据库
      • 关系数据库标准语言SQL(一)
      • 关系数据库标准语言SQL(二)
      • 关系数据理论
      • 关系查询处理和查询优化
      • 内联元素和块级元素
      • 剑指offer算法题练习
      • 动态创建标记
      • 图形化用户界面
      • 在Eclipse中使用Maven构建Java Web项目
      • 增加微博秀遇到的一些问题
      • 处理机调度
      • 如何用github和hexo搭建个人博客
      • 存储管理
      • 存储系统的层次结构
      • 学习模仿lionhit网站首页的过程总结
      • 实用的GitHub小技巧
      • 并发控制
      • 循环与分支程序设计
      • 指令系统的设计
      • 指令级并行及其开发——硬件方法
      • 搭建自己的VPN服务器
      • 操作系统用户界面
      • 数据库安全性
      • 数据库完整性
      • 数据库恢复技术
      • 数据库绪论
      • 数据库编程
      • 数据库设计
      • 数据抽象
      • 文件系统
      • 文法和语言
      • 最佳实践
      • 案例研究:JavaScript图片库
      • 案例研究:图片库改进版
      • 汇编语言程序格式
      • 汇编语言程序设计基础知识
      • 流水线技术
      • 深度优先搜索和广度优先搜索
      • 牛客网——网易2017秋招编程题集合
      • 用JavaScript实现动画效果
      • 第一篇博客
      • 经典排序算法总结(Java实现)
      • 经典查找算法总结(Java实现)
      • 综合示例
      • 编译原理引论
      • 背包、队列和栈
      • 虚拟机安装Linux系统及常用软件
      • 计算机操作系统绪论
      • 计算机系统结构的基础知识
      • 设备管理
      • 设计模式之代理模式
      • 设计模式之单例模式
      • 设计模式之工厂模式
      • 设计模式之策略模式
      • 设计模式之观察者模式
      • 词法分析
      • 进程管理
      • 闭包
      • 阻止Google自动跳转到香港服务器的方法
      • 项目部署过程
  • programming-language
    • C#
      • C#
    • C&C++
      • C
    • C&C++
      • C++
    • Java
      • GoogleGuice
    • Java
      • JVM
    • Java
      • Java
    • Java
      • Maven
    • Java
      • Mybatis
    • Java
      • Spring知识
    • Java
      • SpringBoot
    • Java
      • Tomcat
    • Python
      • Python
    • Shell
      • Shell
  • wheels
    • dcc
      • 产品调研
      • 方案设计
    • red-envelope
      • 方案设计
    • short-url
      • 短链接服务
    • sso
      • 方案设计
Powered by GitBook
On this page
  • 操作系统的概念
  • 操作系统的历史
  • 操作系统的基本类型
  • 操作系统的功能
  • 操作系统的特征
  • 操作系统的结构
  1. blogs
  2. history

计算机操作系统绪论

Previous虚拟机安装Linux系统及常用软件Next计算机系统结构的基础知识

Last updated 3 years ago

操作系统的地位:紧贴硬件之上,并在所有其他软件之下。提供其他软件的支撑环境,是计算机资源的管理者。

操作系统的概念

计算机系统的组成: 操作系统与硬件和其他软件的关系: 在计算机系统的层次结构中,裸机在最里层,其外面是操作系统,而各种实用程序,应用程序运行在操作系统之上,它们以操作系统为支撑环境,同时提供给用户各种服务。

操作系统的虚拟机观点: 经过操作系统提供的资源管理功能和方便用户的各种服务功能把裸机改造成为功能更强、使用更为方便的机器,通常称之为虚拟机(virtual machine)或扩展机(extended machine)。

操作系统的定义: 操作系统(Operating System,OS)是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。

操作系统的作用:

  1. OS作为计算机系统的资源管理者

  • 管理的对象:CPU、存储器、外部I/O设备、信息(数据和软件);

  • 管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。

  1. OS作为用户与计算机硬件之间的接口

  • 系统命令 命令行、菜单式、命令脚本式、图形用户接口GUI

  • 系统调用 形式上类似于过程调用,在应用编程中使用

  1. OS作为虚拟机、扩展机

  • 操作系统将裸机改造成为功能更强,使用更为方便的机器

    • 在裸机上添加:设备管理、文件管理、存储管理、处理机管理、用户接口

    • 合理组织工作流程:作业管理、进程管理

操作系统的历史

  1. 手工操作阶段

  • 工作方式

    • 用户:既是程序员,又是操作员(计算机专业人员)

    • 编程语言:机器语言

    • 输入输出:纸带或卡片

  • 计算机的工作特点

    • 资源利用率低:用户独占全机

    • CPU利用率低:CPU等待手工操作 (计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片)

    • 运算速度很慢:几千~几万次/秒

    • 没有操作系统,及任何其他软件

  1. 单道批处理系统(Simple Batch Processing System) 操作员把用户提交的作业分类,编成作业执行序列。批作业由一个专门的监督程序(Monitor)自动依次处理,完成从一个作业到下一个作业的自动转换。 两种方式:

  • 联机批处理

  • 脱机批处理

  1. 多道批处理系统/多道程序设计系统(Multiprogrammed Batch Processing System/Multiprogramming System)

  • 多道程序设计的基本思想:在内存中同时存放多道程序,在管理程序的控制下交替执行,这些作业共享CPU和系统其他资源。

  • 多道程序运行的特点

    • 多道:内存中同时存放几道独立的程序

    • 宏观上并行:多道程序都处于运行状态,但都未运行完

    • 微观上串行:多道程序交替使用CPU

  1. 分时系统(Time-sharing System) “分时”是指多个用户分享使用同一台计算机或多个程序分时共享硬件和软件资源。

  • 多个用户分时:一台计算机同时连接多个用户终端,每个用户在自己的终端上联机使用计算机,好像独占机器一样。

  • 原理:把处理机的运行时间分成时间片(time slice),按时间片轮转的方式,把处理机分配给各联机作业使用。

  1. 实时系统(Real-time System) 用于工业过程控制、军事实时控制、金融等领域 要求

  • 响应时间短(在被控对象允许的时间范围内作出响应)

  • 系统可靠性、安全性高

  1. 操作系统的进一步发展 目前的操作系统,通常兼有批处理、分时、实时的多种功能,又称作通用操作系统。能运行在多种硬件平台上,适用于计算、事务处理等多种领域,如 UNIX系统、Windows NT等。 近些年来又发展出了个人机操作系统、网络操作系统、分布式操作系统、嵌入式操作系统、智能化操作系统等。

操作系统的基本类型

  1. 批处理操作系统

  • 特点

    • 用户脱机使用计算机:作业提交后直到获得结果之前,不再进行交互

    • 作业成批处理:操作员把用户提交的作业分批进行处理

    • 多道程序运行:按照多道程序设计的调度原则,从一批后备作业中选取多道作业调入内存并组织它们运行,成为多道批处理

  • 优点

    • 系统资源利用率高

    • 系统吞吐量大

  • 缺点

    • 等待时间长

    • 无交互能力(用户无法干预自己作业的运行)

  1. 分时操作系统

  • 特点:

    • 多路性:一台计算机同时为多个终端服务,使多个用户同时共享系统资源,提高了资源利用率。

    • 独立性:时间片轮转方式使每个用户的操作命令得到快速响应,因此用户就感觉不到别人也在使用该台计算机,就象自己独占一样

    • 交互性:系统能及时响应用户的操作,显著提高调试和修改程序的效率,缩短了作业周转时间

  • 优点:

    • 响应快、界面友好:用户能在较短时间内得到响应,能以对话方式完成操作

    • 多用户,便于普及:一个分时系统可以带多台终端,可同时为多个用户使用

    • 便于资源共享

  1. 实时操作系统

  • 实时系统的特点:提供即时响应和高可靠性,响应时间快,可以在毫秒级甚至微秒级立即处理。

  • 三种典型的实时系统

    • 过程控制系统:用于自动控制系统,如化学反应过程中的温度、压力等数据的控制

    • 信息查询系统:通常配置有大型文件系统或数据库,并向用户提供简单、方便、快速查询的能力,如情报检索

    • 事务处理系统:如银行业务和飞机订票系统

  1. 个人计算机操作系统

  • 个人计算机操作系统的特征

    • 应用领域:事务处理、个人娱乐

    • 系统要求:使用方便、支持多种硬件和外部设备(多媒体设备、网络、远程通信)、效率不必很高

  • 常用的个人计算机操作系统

    • 单用户单任务:MS DOS

    • 单用户多任务:OS/2, MS Windows 3.x, Windows 95, Windows NT, Windows 2000 Professional

    • 多用户多任务:UNIX(SCO UNIX, Solaris x86, Linux, FreeBSD)

  1. 网络操作系统 网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。网络操作系统为网络上计算机进行方便而有效的网络资源共享,提供网络用户所需的各种服务。例如,Novell公司的Netware为NOS。 网络操作系统的功能

  • 通常操作系统的功能:处理机管理、存储器管理、设备管理、文件管理等

  • 网络通信功能:通过网络协议进行高效、可靠的数据传输

  • 网络服务:文件和设备共享,信息发布

  • 网络资源管理:协调各用户使用

  • 网络管理:安全管理、故障管理、性能管理等

  1. 分布式操作系统 分布式系统是以计算机网络为基础的,它的基本特征是处理上的分布。 所有系统任务可在系统中任何处理机上运行,自动实现全系统范围内的任务分配并自动调度各处理机的工作负载。

操作系统的功能

  1. 存储管理 管理目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。

  • 存储分配与回收 为进程分配存储空间

  • 存储保护 防止进程间相互干扰、相互保密;如:访问合法性检查

  • 地址映射(变换) 进程逻辑地址到内存物理地址的映射

  • 内存扩充(覆盖、交换和虚拟存储) 在不增加物理内存的情况下向用户提供海量存储空间,提高内存利用率、扩大进程的内存空间

  1. 处理机管理

  • 作业和进程调度 为进程分配处理机,以充分利用处理机资源和提高系统性能;核心为调度算法

  • 进程控制 创建、撤消、阻塞、唤醒进程——主动改变进程的状态 通过原语/系统调用实现

  • 进程同步 协调进程间的关系:互斥 / 同步 同步机制:如锁、信号量

  • 进程通讯 进程间的信息交换

  1. 设备管理 任务:分配与回收设备,驱动设备,响应I/O请求 目的:提高I/O设备利用率,方便使用I/O设备

  • 缓冲管理 解决CPU与I/O速度不匹配,提高两者的利用率, 缓冲机制:单缓冲、双缓冲、缓冲池

  • 设备分配与回收 根据用户的I/O请求和相应的分配策略,为该用户分配外设以及通道、控制器等, 在多用户间共享I/O设备资源。 虚拟设备(virtual device):将一个物理设备变换为多个与之对应的逻辑设备,供多个用户共享

  • 设备处理 控制设备工作,处理中断请求 设备驱动程序,实现CPU与通道和外设之间的通信。

  • 设备独立性 设备独立性(device independence):指用户程序与物理设备无关,即提供统一的I/O设备接口,使应用程序独立于物理设备,提高可适应性。

  1. 文件管理

  • 文件存储空间管理 分配、回收文件空间,解决如何存放信息,以提高空间利用率和读写性能。

  • 目录管理 解决信息检索问题。实现文件按名存取,共享与保护

  • 文件读写和存取控制 实现对文件的具体访问 ,防止文件被坏

  • 文件操作的一般管理 实现对文件的创建、删除、打开、关闭等操作

  1. 用户接口

  • 命令接口 命令界面:用户利用键盘命令组织和控制自己的作业运行 图形界面:用户利用鼠标、图标等图形用户界面工具,可以直观、方便、有效地使用系统服务和各种应用程序和实用工具。

  • 程序接口(编程接口) 系统调用:供用户程序和系统程序调用操作系统功能。

操作系统的特征

  1. 并发(concurrency) 并发指两个或两个以上的事件或活动在同一时间间隔内发生。 操作系统是一个并发系统。各进程间的并发,系统与应用间的并发,都是由操作系统来管理的。

  • 在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。

  • 程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程。

  1. 共享(sharing) 共享指操作系统中的资源可被多个并发执行的进程所使用。操作系统要对系统资源进行合理分配和使用。共享可分成两种资源共享方式:

  • 互斥共享(如音频设备):资源分配后到释放前,不能被其他进程所用。

  • 同时访问:系统中还有许多资源,允许同一时间内多个进程对它进行访问(这里“同时”是宏观上的说法)。典型的可供多进程同时访问的资源是磁盘。

  1. 虚拟(virtual) 虚拟性是指操作系统中的一种管理技术,它是把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术,显然,前者是实际存在的而后者是虚构假想的。

  • CPU——通过多道程序和分时使用CPU技术,物理上的一个CPU变成逻辑上的多个CPU。

  • 存储器——虚拟存储器则是把物理上的多个存储器(主存和辅存)变成逻辑上的一个(虚存)的例子。

  • 打印设备——通过Spooling技术可把物理上的一台独占设备变成逻辑上的多台虚拟设备。

  1. 异步性(asynchronism) 也称不确定性,指进程的执行顺序和执行时间的不确定性。

  • 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢

  • 程序运行发生错误或异常的时刻是随机的;难以重现系统在某个时刻的状态(包括重现运行中的错误)

  • 各种各样硬件和软件中断事件发生的时刻是随机的 。

操作系统的结构

《计算机操作系统教程(第3版)》张尧学 史美林 张高 著

操作系统逻辑结构如下图所示: 与基本机器硬件紧挨着的是系统核,具有初级中断处理、外部设备驱动、在进程之间切换处理机以及实施进程控制和通信的功能,提供一种进程可以存在和活动的环境。 系统核以外各层依次是存储管理层、I/O处理层、文件存取层、调度(作业调度)和资源分配层。它们具有各种资源管理功能并为用户提供各种服务。

计算机操作系统绪论1
计算机操作系统绪论2