操作系统的作用

  • 管理计算机硬件
  • 充当计算机用户和计算机硬件的中介(操作系统控制硬件,协调各个用户应用程序的硬件)

计算机系统的资源

CPU时间、内存空间、文件存储空间、I/O设备等

操作系统的定义

  • 如何定义一个操作系统:
  1. 计算机系统的根本目的是,执行用户程序并且更容易解决用户问题。为了实现这一目的构造了计算机硬件。
  2. 由于硬件本身并不容易使用,因此开发了应用程序。
  3. 有些应用程序需要一些共同操作,如控制I/O设备。
  4. 这些控制和分配I/O设备资源的共同功能则被组成一个软件模型:操作系统
  • 比较公认的定义:
  1. 操作系统是一直运行在计算机上的程序(通常称为内核(kernel))
  2. 除了内核外还有两类程序: 系统程序和应用程序
  3. 系统程序: 与系统运行有关,但不是内核的一部分
  4. 应用程序: 与系统运行无关的所有其他程序

中间件

  • 产生: 移动操作系统通常不只有内核,也有中间件
  • 定义: 为应用程序开发人员提供其他功能的软件框架
  • 栗子: 最常用的两个移动操作系统(IOS和Android),除了内核外,都有中间件以便支持数据、多媒体和图形等.

总线

  • 物理: 一根根线,用于连接一个或多个CPU和若干设备管理器
  • 作用: 提供到内存的访问服务

设备管理器

  • 作用: 负责一类特定的设备(磁盘驱动、音频设备或视频显示器等)

计算机开机(或重启)后的一系列操作:

  • 初始程序: 当计算机打开或重启以便开始运行时,它需要运行一个初始程序
  • 初始程序的位置: 初始程序(或引导程序)一般位于计算机的固件(firmware),如ROM(Read-Only Memory,只读内存)或EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读内存)
  • 引导程序的作用: 它初始化系统的各个组件,从CPU寄存器、设备控制器到内存内容
  • 引导程序: 引导程序必须知道如何加载操作系统并且开始执行系统,因此引导程序必须定位操作系统内核并且加到内存

中断:

  • 作用: 用于告知CPU事件的发送,并采用相应的事件处理程序
  • 特点: 当CPU被中断时,它停止正在做的事,并立即转到固定位置(通常包含终端服务程序的开始地址)再继续执行。在执行完毕(中断程序)后,CPU重新执行被中断的计算
  • 硬件中断: 随时通过系统总线发送信号到CPU,触发中断
  • 软件中断: 通过系统调用(也称监督程序调用(monitor call)),触发中断

位、字节、字

  • 位: 或比特(bit),即一个0或一个1
  • 字节(byte): 8位,是大多数计算机的常用最小存储
  • 字(word): 计算机架构的常用存储单位,有一个或多个字节组成

CPU只能从内存中加载指令,因此执行程序必须位于内存

内存

  • 定义: 内存(main memory),也称为随机访问内存(Random Access Memory, RAM)
  • 作用: CPU从内存中加载指令,执行的程序必须位于内存之内.
  • 冯·诺依曼体系结构:
  1. 首先从内存中获取指令,并存到指令寄存器(instruction register)。
  2. 接着,该指令被解码,也可能会从内存中获取操作数据并且存到内部寄存器
  3. 在指令完成对操作数据的执行后,结果也可存到内存
  • 理想情况下,程序和数据无法永久驻留内存的原因:
  1. 内存通常太少,不能保留所有需要的程序和数据
  2. 内存是失性的(volatile)存储设备,掉电时就会失去所有内容

外存

  • 作用: 扩充内存
  • 特点: 能存储大量数据,且数据不易丢失
  • 常见外存: 磁盘或硬盘
  • 外存与内存的关系: 大多数程序(系统与应用)都保存在磁盘上,当要执行时才加载到内存

存储设备的层次

  • 速度从快到慢:
  1. 寄存器
  2. 高速缓存
  3. 内存
  4. 固态硬盘
  5. 硬盘
  6. 光盘
  7. 磁带
  • 注:
  1. 固态硬盘之上的存储系统为易失的
  2. 固态硬盘及之下的为非易失的

I/O结构

  • 计算机系统由一个CPU和多个设备控制器组成,它们通过共同总线连在一起
  • 每个设备控制器管理某一特定类型的设备
  • 设备控制器:
  1. 每个设备控制器维护一定量的本地缓冲程序和一组特定用途的寄存器
  2. 负责在所控的外围设备与本地缓冲存储之间进行数据传递
  3. 操作系统为设备控制器提供了一个设备驱动程序,负责设备控制器,并且为操作系统的其他部分提供统一的设备访问接口
  • I/O开始:
  1. 设备驱动程序加载设备控制器的适当寄存器,
  2. 设备控制器检查寄存器内容,以便觉得采用什么操作
  3. 控制器开始从设备像本地缓冲区传输数据
  4. 数据传输完毕后,设备控制器就会通过中断通知设备驱动程序
  5. 设备驱动程序返回控制到操作系统
  • 直接内存访问:
  • 产生: 上述第4步中断I/O会带来很大的开销,为了解决这个问题产生了直接内存访问(DMA, Direct Memory Access)
  • 实现: 为I/O设备设置好缓冲、指针和计数器,设备控制器可在本地缓冲和内存之间传送整块的数据,而无需CPU的干预
  • 与传统的区别: 每块只产生一个中断,来告知设备驱动程序操作已完成,而不像传统那样每个字节产生一个中断.

参考《操作系统概念》P1~P8

操作系统 --- [笔记]功能、组成相关推荐

  1. 操作系统笔记整理12——磁盘存储器的管理

    点此链接可跳转到:操作系统笔记整理--目录索引页 参考书籍:<计算机操作系统>第四版 汤小丹等编著 文章目录 点此链接可跳转到:操作系统笔记整理--目录索引页 外存的组织方式 连续组织方式 ...

  2. 【王道考研】操作系统 笔记 第一章

    特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道考研]操作系统 笔记 第二章上 进程调度 ...

  3. 操作系统笔记——Linux系统实例分析、Windows系统实例分析

    文章目录 传送门 Linux进程管理 Linux进程组成 Linux进程链表 Linux进程控制 用户进程创建与撤销 0,1,2号进程 Linux进程切换 Linux进程调度 内核同步 Linux储存 ...

  4. 【王道考研】操作系统 笔记 第二章上 进程调度

    本文内容,1.进程和线程 2.进程调度 特此鸣谢王道考研 本文参考王道考研的相关课程 若有侵权请联系,立删 其余笔记链接: [王道考研]操作系统笔记 第一章_才疏学浅743的博客-CSDN博客 [王道 ...

  5. 操作系统笔记——概述、进程、并发控制

    文章目录 传送门 概述 入门书籍与视频推荐 定义操作系统 操作系统的形成 顺序处理(无操作系统) 批处理系统 单通道批处理系统 多通道批处理系统 分时系统 实时系统 嵌入式系统 操作系统类型总结 操作 ...

  6. 现代操作系统笔记 2.1 进程

    现代操作系统笔记 2.1 进程 前言 从本章开始我们将深入考察操作系统是如何设计和构造的.操作系统中最核心的概念是进程:这是对正在运行程序的一个抽象. 操作系统的其他所有内容都是围绕着进程的概念展开的 ...

  7. 操作系统笔记(王道考研) 第五章:输入输出(I/O)管理

    大部分内容基于中国大学MOOC的2021考研数据结构课程所做的笔记,后续又根据2023年考研的大纲增加了一些内容,主要有操作系统引导.虚拟机.多级队列调度算法.互斥锁.调度器和闲逛进程.内存映射文件. ...

  8. 操作系统笔记——进程管理

    操作系统笔记--进程管理 2. 进程管理 2.1 进程与线程 2.1.1 进程的引入 前趋图 程序的顺序执行 程序的并发执行 2.1.2 进程的定义及描述 进程的定义 进程的特征 进程和程序的关系 进 ...

  9. 操作系统笔记(II:从进程同步到文件管理)

    操作系统笔记(II:从进程同步到文件管理) 4.5.2 读者-写者问题 [问题描述] 若干读者.写者,共享文件/数据: 读者:可以同时读数据,不可修改数据. 写者:修改数据,不能同时修改同一份数据,进 ...

最新文章

  1. Messages 贪心,期望,概率,模拟(2000)
  2. 中getname_Spring IOC中的灵魂伴侣:BeanFactory ApplicationContext
  3. 揭秘!阿里实时数仓分布式事务Scale Out设计
  4. PHP中生成UUID
  5. World Wind Java开发之十——AnalyticSurface栅格渲染(转)
  6. MingW环境下的windows编程
  7. 登录服务器信息怎么删除,服务器端删除了用户,怎么通知客户端浏览器删除cookie...
  8. 【应急响应】Linux应急响应入侵排查思路
  9. c语言程序中延时函数作用,51单片机C语言延时函数怎么定义和使用 - 全文
  10. 在Linux中使用飞信发送手机短信
  11. win10如何禁止CDR软件访问网络的设置方法教程
  12. Test meeting 11.23
  13. html中js alert函数,javascript的alert是什么
  14. Python JsonPath 详细使用
  15. ruby on rais3 入门——环境搭建详细步骤(windows下)
  16. vue使用form表单密保问题不重复
  17. Mac Redis开机自启动
  18. C语言rot90的头文件,python – np.rot90()破坏了opencv图像
  19. CSS实现间隔线|(竖线)
  20. 迅为I.MX6ULL开发板镜像烧写

热门文章

  1. java命令_JAVA与模式之命令模式
  2. python杨辉三角函数公式大全_python-1-杨辉三角算法总结
  3. c#将像素转换为页面单位
  4. 深度学习笔记(待续)
  5. Nike Kyrie 1 Performance Review
  6. [HZNOI #koishi] Magic
  7. JavaWeb:脚本标识
  8. java大数BinInteger
  9. 1001. A+B Format (20)---------------PAT开始
  10. 为什么需要架构图,怎么画?