操作系统 --- [笔记]功能、组成

操作系统的作用

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

计算机系统的资源

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 试题二

Java 试题二 1、哪个选项和show函数重载 class Demo{ void show(int a,int b,float c){} } A.void show(int a,float c,int b){}//yes B,void show(int a,int b,float c){}//一模一样。不可以出现在同一个类中。 C.int show(int a,float c,int b){return a;}//yes。 D.in…

Python之简单验证码实现

def v_code(): ret for i in range(5): num random.randint(0,9) alf chr(random.randint(65,122)) s str(random.choice([num,alf])) ret s return retprint(v_code())转载于:https://www.cnblogs.com/geeker-xjl/p/8809915.html

测绘软件使用体会

进入石家庄铁道大学已经两年了,学习测绘工程专业也已经两年了,大一的时候大多是对测绘不了解,到了大二的时候上半学期我就开始了解和使用一些测绘专业相关的软件,在大二下半学期实习的时候更是深入的学习和使用测绘软件&#xff0…

javascript --- event loop

栗子1 求下面函数的输出 console.log(script start);setTimeout(() > {console.log(setTimeoout); }, 0);Promise.resolve().then(function(){console.log(promise1); }).then(function(){console.log(promise2); }) console.log(script end);说明: 在"promise2"…

sublime 设置自动换行

1.打开sublime,点击preferences -> settings 2.将word_wrap的值由auto修改为true(若没有word_wrap,手动添加) 转载于:https://www.cnblogs.com/hitwgs/p/8821316.html

Java 试题三

Java 试题三 1、java类是否可以多继承,怎么实现多继承? 答:java没有多继承,但可以通过接口的形式来达到多继承的目地。 2、我比较两个String总是false,但是它们明明都是”abc” ! 答:比较Str…

Cent os常见操作命令

1.查看防火墙状态:firewall-cmd –-state 2.关闭防火墙:systemctl stop firewalld.service 3.禁止防火墙开机启动:systemctl disable firewalld.service 4.关闭selinux:vi /etc/selinux/config,然SELINUXdisabled 5.查…

koa --- 使用中间件多层级抛出错误

说明 能够熟练的掌握错误的抛出,可以在一定程度上提高代码的开发效率和可读性 构造错误 本栗采用调用一个不存在的函数来抛出错误 const Koa require(koa); const app new Koa();// 响应时间输出中间件 app.use(async (ctx, next) > {await next();// 获取响应头,印证…

电脑的真正价值

1.不是应用程序,而是开发程序 2.高级语言就像是人类的语言,低级语言就像是一个全心全意帮我的社交专家,他帮我说服电脑实现我的指令 3.高级语言就是字节码,低级语言帮我转换成机器码 4.有时候,高级语言的一个眼神&…

Java 试题四

Java 试题四 1、abstract class 和interface 有什么区别? 【基础】 答:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类, 并为该类声明方法,但不能…

PyInstaller用法

pyinstaller定义:PyInstaller是一个压缩python文件成为可执行程序的一个软件。 pyinstaller工作原理:① 它会扫描你所有的Python文档,并分析所有代码从而找出所有你的代码运行所需的模块。② PyInstaller会将所有这些模块和你的code放在一个文…

koa --- 监听路由,并使用模板引擎渲染显示

使用路由 /Koa实战/routes/index.js const Router require(koa-router); const router new Router();router.get(/, ctx > {ctx.body index; });module.exports router/Koa实战/routes/users.js const Router require(koa-router); const router new Router({prefi…

公共平台服务治理与鉴权

问题 解决问题 鉴权 注册 管理 总结聊一聊最近了解的公司服务治理平台,主要是思想,理念,而不是一种技术或框架。整个平台设计,融入了OAUTH2认证,融入了微服务思想,帮助公司各系统在复杂的IT架构下&#xff…

Java 试题五

Java 试题五 1、运行时异常与一般异常有何异同 答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,…

【初赛】概率与期望学习笔记

一、事件 1、单位事件、事件空间、随机事件 在一次随机试验中可能发生的不能再细分的结果被称为单位事件,用 $ E $ 表示。在随机试验中可能发生的所有单位事件的集合称为事件空间,用 $ S $ 来表示。例如在一次掷骰子的随机试验中,如果用获得的…

koa --- 扩展hbs方法

moment 是一款常用的处理时间的库传入 1999-03-01T16:00:00.000Z YYYY/MM/DD输出 1999/03/02 const moment require(moment);const myDatePattern (date, pattern) >{return moment(date).format(pattern) } 给扩展hbs功能. 放在 utils/helper.js 下方便管理 const hb…

go系列 锁的初识

Go基础之锁的初识 当我们的程序就一个线程的时候是不需要用到锁的,但是通常我们实际的代码不会是单个线程的,所有这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? 当我们多个线程在读相同的数据的时候则是需要加锁…

Java 试题六

Java 试题六 1、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 2、Set里…

node --- 实现session认证.

跨域认证的问题 互联网服务离不开用户认证.一般流程如下: 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id&…

回信,我的好朋友王一涵

好了,不拖了,沏一杯咖啡,把信写完。因为再拿好吃的贿赂你,贿赂不起了—— 一个胖子可以吃穷我的。 王一涵凹,不得了不得了。微胖肉质女生,关于体重我就不提了,只有我知道嘿嘿嘿,在我…