前言:

  • (1)计算机系统的层次结构
  • (2)硬件环境
  • (3)操作系统结构
  • (1)进程
  • (2)进程状态
  • (3) 中断优先级和中断屏蔽
  • 页式存储管理

在生活中常听说过这种话,如果想做为一个编程高手学习操作系统是必要的,现在我国大多都属于应用层面的开发,操作系统层面开发少至要少,为了成为真正的高手给大家每天 分享一个操作系统知识,每天一小步就是梦想的一大步。
谁都知道计算机系统是由 硬件和软件组成的,计算机硬件的每一次革新都伴随着操作系统的发展。
操作系统的发展大致分为4个阶段。 第一代电子管计算机诞生于 20世纪40年代,当时操作系统尚未出现,程序员直接与硬件打交道; 第二代晶体管计算机始于 20世纪50年代,为了提高计算资源的使用效率,减少空闲时间,提出了单道批处理系统; 20世纪60年代,随着小规模 集成电路的发展,出现了多道批操作系统,以进一步提高资源的使用效率; 20世纪70年代大规模集成电路飞速发展,操作系统百家争鸣,涌现出UNIX、DOS、Windows、Mac OS、Linux等著名的操作系统。

01
第四代操作系统
20世纪70年代,随着大规模集成电路的发展,微处理器的性能日益强大,计算机逐渐从大型机发展为微型机,操作系统的发展也进入了个人计算机和工作站时代。两款著名的操作系统占领了大部分PC市场:微软公司编写的MS-DOS操作系统主要运行在IBM个人计算机和使用英特尔处理器的计算机中;UNIX则主要运行在使用摩托罗拉处理器的大型个人计算机中。
02
国产操作系统
我国最早的操作系统可以追溯到20世纪70年代末,在40多年的发展历史中,涌现出多种国产操作系统,大体可将其分成自主研发与基于Linux内核两大类。
自主研发操作系统是指一个从无到有构建出来的操作系统。早期的国产操作系统COSIX及最初的麒麟操作系统均采取了自主研发的策略,除产品的规格定义参照国际标准外,整个操作系统均由中国开发人员进行开发,不依赖已有成果。这类型操作系统的知识产权完全自主可控,但由于“闭门造车”的开发方式,受开发团队的限制,使系统容易存在漏洞;同时,由于市场规模较小,会出现软件生态薄弱等问题,除中科方德外,当前大多数国产操作系统已不再采取自主研发的方式。
由于开源操作系统内核Linux的出现,越来越多的厂商选择基于Linux内核或基础发行版进行研发,实现自主可控的目标。与Windows操作系统存在断供风险不同,Linux内核由GPL v2许可证授权,因此任何人都可以使用Linux内核,对其进行运行、复制、修改、分发,甚至是盈利,这为基于Linux的国产操作系统提供了自主可控的基础。同时,操作系统厂商需要对Linux内核进行深入的分析与研究,对代码有一定的把握,可以对其进行定制及安全增强,防止后门的出现。

一、概念:

  • (1)计算机系统的层次结构
  • (2)硬件环境
  • (3)操作系统结构
  • (1)进程
  • (2)进程状态
  • (3) 中断优先级和中断屏蔽
  • 页式存储管理

(1)什么是操作系统

在回答这个问题之前,我们先来了解一下什么是计算机系统。计算机系统是按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统。

计算机系统由硬件系统和软件系统组成。软硬件系统的组成部分就是计算机系统的资源,当不同的用户使用计算机时都要占用系统资源并且有不同的控制需求。

操作系统就是计算机系统的一种系统软件,由它统一管理计算机系统的资源和控制程序的执行。

操作系统的设计目标一是使计算机系统使用方便。二是使得计算机系统能高效地工作。

(2)操作系统的形成

早期没有操作系统→原始汇编系统→管理程序→操作系统 可以看到,操作系统是随着计算机硬件的发展和应用需求的推动而形成的。

(3)操作系统的类型

按照操作系统提供的服务,大致可以把操作系统分为以下几类:

批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。其中批处理操作系统、分时操作系统、实时操作系统是基本的操作系统。

批处理操作系统按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。又可分为批处理单道系统和批处理多道系统。单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率。

分时操作系统,这种系统中,一个计算机系统与许多终端设备连接,分时系统支持多个终端用户,同时以交互方式使用计算机系统,为用户在测试、修改和控制程序执行方面提供了灵活性。分时系统的主要特点是同时性、独立性、及时性和交互性。

实时操作系统能使计算机系统接收到外部信号后及时进行处理,并在严格的规定时间内完成处理,且给出反馈信号。它是较少有人为干预的监督和控制系统。实时系统对可靠性和安全性要求极高,不强求系统资源的利用率。

网络操作系统可以把若干计算机联合起来,实现各台计算机之间的通信及网络中各种资源的共享,像我们现在使用的Windows ,UNIX和Linux等操作系统都是网络操作系统。

分布式操作系统的网络中各台计算机没有主次之分,在任意两台计算机间的可进行信息交换和资源共享。这一点上分布式操作系统和网络操作系统差别不大,他们的本质区别在于:分布式操作系统能使系统中若干计算机相互协作完成一个共同的任务。这使得各台计算机组成一个完整的,功能强大的计算机系统。

(4)操作系统的功能

从资源管理的观点出发,操作系统功能可分为五大部分:处理器管理、存储管理、文件管理、设备管理和作业管理。

二、OS结构:

  • (1)计算机系统的层次结构
  • (2)硬件环境
  • (3)操作系统结构
  • (1)进程
  • (2)进程状态
  • (3) 中断优先级和中断屏蔽
  • 页式存储管理

计算机系统系统是由硬件系统和软件系统两部分组成,操作系统是软件系统的一个组成部分,它是直接在硬件系统的硬件的基础上工作的,所以在研究操作系统之前,先必须对计算机系统的结果有一个基本的了解

(1)计算机系统的层次结构

现在的通用计算机系统是由硬件和软件组成的一种层次结构,最内层是硬件系统,最外层是使用计算机系统的人,人与硬件系统之间是软件系统。

(2)硬件环境

        CPU和外设的并行工作I/O中断的作用存储结构

主存储器是CPU能访问的唯一的存储空间,任何程序和数据都必须被封入主存储器之后,CPU才能对它进行操作主存储器以“字节(BYTE)”为单位进行编址,若干字节组成一个“字(WORD)”。中央处理器可以按地址读出主存储器中的一个字节或一个字的内容。

辅助存储器解决了主存储器容量不足,以及主存储器无法保存信息的问题。辅助存储器的优点是容量大且能永久保存信息,缺点是无法被中央处理器直接访问,必须通过辅助存储器才能访问。
中央处理器存储信息的速度依次为:存取寄存器中的信息速度最快;通过系统总线存取主存储器的速度居中;使用辅助存储器的信息速度最慢。

寄存器用来存放临时的工作信息和系统必须的控制信息。

主存储器中存放操作系统的核心部分,以及当前需执行的程序和数据。

辅助存储器是存放操作的核心部分和其他程序和数据。

磁盘的信息可随机存取,磁带上的信息只能顺序存取。

硬件保护:在资源共享的计算机系统中,只有有了必要的保护措施,才能使个别的错误不致影响其他程序。

(3)操作系统结构

层次结构的最大特点是把整体问题局部化。把一个大型复杂的操作系统分解成若干单向依赖的层次,由各层的正确性来保证整个操作系统的正确性。
采用层次结构,能使结构清晰,便于调试,有利于功能的增、删和修改,正确性容易得到保证,也提高了系统的可维护性和可移植性。
操作系统的一种层次结构如下图:
作业管理
文件管理
设备管理
存储管理
处理器管理
硬件

三、多道程序:

  • (1)计算机系统的层次结构
  • (2)硬件环境
  • (3)操作系统结构
  • (1)进程
  • (2)进程状态
  • (3) 中断优先级和中断屏蔽
  • 页式存储管理

(1)进程

 进程的定义:把一个程序在一个数据集上的一次执行称为一个 “进程”进程是由程序、数据集和进程控制块三部分组成的。我们举一个例子,比如在有一个用户程序notepad.exe(记事本),当它存放在磁盘上时,就是一个程序,在windows操作系统下运行它时,就会在内存中建立一个记事本程序的进程,而我们在记事本中编辑的当前文字就是这个进程的数据集,操作系统会为当前的进程设置一个进程控制块。如果我们再打开一个记事本程序的窗口,就会建立另一个进程,此时运行的是同一个程序,但存在两个进程,第二个窗口中的编辑内容就是第二个进程的数据集。

进程与程序的区别及关系。程序是静止的,进程是动态的。进程包括程序和程序处理的对象(数据集),进程能得到程序处理的结果。进程和程序并非一一对应的,一个程序运行在不同的数据集上就构成了不同的进程。通常把进程分为“系统进程”和“用户进程”两大类,把完成操作系统功能的进程称为系统进程,而完成用户功能的进程则称为用户进程。

(2)进程状态

通常,根据进程执行过程不同时刻的状态,可归纳为三种基本状态:

等待态 :等待某个事件的完成;
就绪态 :等待系统分配处理器以便运行;
运行态 :占有处理器正在运行。

(3) 中断优先级和中断屏蔽

1、 中端优先级是硬件设计时确定的。中断装置按预定的顺序来响应同时出现的中断事件,这个预定的顺序称为“中断优先级”。中断优先级是按中断事件的重要性和紧迫程度来确定的 ,是由硬件设计师固定下来的。一般情况下,优先级的高低顺序依次为: 硬件故障中断 、 自愿中断 、 程序性中断 , 外部中断 和 输入输出中断 。

2、中断的嵌套处理

3、中断屏蔽的作用。中断优先级只是规定了中断装置响应同时出现的中断的次序,当中断装置响应了某个中断后中断处理程序在进行处理时,中断装置也可能去响应另一个中断事件。因此会出现优先级低的中断事件的处理打断优先级高的中断事件的处理,使得中断事件的处理顺序与响应顺序不一致,而且会形成多重嵌套处理,使多现场保护、程序返回等工作变的复杂。

中断屏蔽技术就是为了解决上述问题而提出的在一个中断处理没有结束之前不响应其他中断事件,或者只响应比当前级别高的中断事件。于是,当中断装置检查到有中断事件后,便去查看PSW中中断屏蔽标志,如果没有屏蔽就响应该中断;否则,暂时不响应该中断,待屏蔽标志消除后再响应。自愿中断是不能屏蔽的。

四、存储管理:

  • (1)计算机系统的层次结构
  • (2)硬件环境
  • (3)操作系统结构
  • (1)进程
  • (2)进程状态
  • (3) 中断优先级和中断屏蔽
  • 页式存储管理

操作系统的存储管理如同一个大地主,管着一个大庄园,当有农户需要租用田地时,地主就给分配一块地让他种(用户区分配)。等到地里长出了果实,结果出来后,地主还得来收回这块地(去配)。

为了管好这片田地,地主还要管好庄园的门,凡是要进去种地的,都得由地主根据他的需要让他到位置确定实际的田地上去干活。(把逻辑地址转换成物理地址)

庄园里还有一些大家共同可以使用的地方,比如地主的花园,工具房等,大家可以进去,也可以使用,但是不许改变任何现有的东东,还有,每个农户只能在自己的地里刨食吃,如果有人胆敢到别人地里或地主的花园里摘花偷食,可要当心他们养的狼狗跳出来哦。(共享和保护)

当然,再大的地也是不够多的,地主为了多赚些钱,当所有的地都租出去的时候,他想办法把有些种田人暂时不种的那块地里的东东连地皮一起挖出来放到仓库里先堆着。把地腾出来租给别人种(这一招可够绝的,不过地主说啦,这就是“虚拟存储”。)

页式存储管理

  1. 1、如何分页和分块

    页式存储管理中有两个名词:“ 页 ”和“ 块
    ”,其中的“块”是针对硬件来说的,就是把存储器分成若干相等大小地区,每个区就称为一个块。对应的,在程序中,逻辑地址进行“分页”,其大小和每个块相一致。

    事实上,页面的大小是由块的大小决定的。对于程序来说,其逻辑地址还是和原来一样采用连续的地址。只是 按照块的位数取其前面数位作为页号 .

    分配空间时,根据作业长度可以确定它的页面数,根据这个页面数在主存中分配相应的块数,只要是空闲块就可以放入,即使不是相邻的。并把分配情况记在“页表”中,根据页表可以找到相对应的页号与块号,就得出绝对地址了。

    2、采用页式管理,使主存空间充分利用,也不必为了得到连续空间而进行移动。 可以提高系统的效率。

    3、页表的构造与作用

    每个被装入主存的作业都有一张 页表
    ,指出该作业逻辑地址中的页号与所占用的主存块号之间的对应关系。页表的长度由作页拥有的页面数决定,行号对应为页号,行中记录的是主页中的块号。

    页表是硬件进行地址转换的依据,每执行一条指令时按逻辑地址中的页号查找页表并转换成绝对地址。

    在多道程序设计系统中,进入主存的每个作业都有一张页表,由一个硬件“页表控制寄存器”来记录每个作业的页表所在位置和长度以便作业转换时同时转换页表。

    4、快表的构造与作用

    快表
    就是页表的一部分克隆,每行中有页号及其对应的块号,整个快表存放在一个小容量的高速缓存中,访问时快表和内存同时进行查找,因为快表速度很快,而常用的页都登记在快表中,因此可以大大加快执行速度。

    5、采用页式管理的地址转换过程

    (为什么不直接用块分配表来记录而要用位示图呢,因为主存块很多,这样可以节省空间,提高效率。位示图就是用一个位(0或1)来表示一个块的使用状态,一个字32位,可以表示32块。按顺序排列,只需一小段内存就可以记录主存中大量的块状态)

    6、利用位示图实现页式存储空间的分配和回收

    页式存储管理把主存空间分成大小固定的许多块,在装业作业时,如何知道主存中哪些块已使用,哪些还未用,可以用位示图来表示。

    块号=字号×字长+位号

    字号=[i/字长](即块号i除以字长取整)

    尾号=i mod 字长(即块号i除以字长取余)。

今天就写到这里了这只是简单的介绍,后面会一个层面的解析,有感兴趣的可以加群分享一些编程知识:

五分钟带你了解《操作系统原理》相关推荐

  1. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

  2. c++ map用法_Python专题——五分钟带你了解map、reduce和filter

    点击上方蓝字,和我一起学技术.今天是Python专题第6篇文章,给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter.不知道大家看到map和reduce的时候有没有什么 ...

  3. 干货:五分钟带你看懂NestedScrolling嵌套滑动机制

    Android NestedScrolling嵌套滑动机制 Android在发布5.0之后加入了嵌套滑动机制NestedScrolling,为嵌套滑动提供了更方便的处理方案.在此对嵌套滑动机制进行详细 ...

  4. 五分钟带你了解 计算机操作系统——内存管理(万字详解·图文)

    目录 无存储器抽象 一种存储器抽象:地址空间 地址空间的概念 交换技术 空闲内存管理 使用位图的存储管理 使用链表的存储管理 虚拟内存 分页 页表 加速分页过程 对大内存的页表 页面置换算法 最优页面 ...

  5. html图片查看器工作原理,五分钟了解浏览器的工作原理

    Web 浏览器无疑是用户访问互联网最常见的入口.浏览器凭借其免安装和跨平台等优势,逐渐取代了很多传统的富客户端. Web 浏览器通过向 URL 发送网络请求来访问 Web 服务器资源,并以交互性的方式 ...

  6. 五分钟带你玩转Zabbix6.0容器化HA集群

    图片 蔡斯 | Zabbix开源社区签约专家 Zabbix资深玩家,SRE高级运维,架构师.精通服务组件监控.模板制作及告警治理. 擅长领域:Zabbix API定制化开发,对接企业蓝鲸,JMS保垒机 ...

  7. 五分钟带你了解前端开发,以及前端开发的发展机会

    前端开发 前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术.框架.解决方案,来实现互联网产品的用户界面交互  .它从网页制作 ...

  8. 为什么你没时间研究一下LED节能灯?五分钟带你暴力拆解!

    愉快的周末又到来了,在前面我们给<电子发烧友网>的小伙伴介绍了周末自制一个电子版的个人名片,今天再来给大家介绍下LED灯的内部暴力拆解.那么还是老规矩先来介绍下什么是LED灯? LED即半 ...

  9. 二道波哥-五分钟带你了解好省

    什么是好省? 1.好省是一款导购APP,依托于淘宝天猫平台,为广大用户提供海量优惠券,致力于帮助用户买到最具性价比的网购商品.与此同时,好省还是一个创业平台,在这里,任何人都可以0门槛.0投资创业,只 ...

最新文章

  1. 跨模态学习在三维语义分割领域适应中的应用
  2. 用 C 语言实现面向对象编程
  3. MySQL查看、创建和删除索引的方法
  4. 加快推进智慧城市建设 促进城乡共发展共繁荣
  5. tomcat 访问去掉项目名 直接访问 localhsot
  6. 监控oracle数据io,Prometheus监控Oracle数据库
  7. [转]vs2003,安装程序检测到另一个程序要求计算机重新启动
  8. 串行通信:常见的串行通信接口协议UART、SPI、I2C简介
  9. C语言二维数组定义、赋值、按要求遍历操作、输出以及函数调用
  10. 高级计算机图形学建模技术与方法
  11. Modbus通信协议
  12. 软件测试工程师APUS一面二面汇总
  13. 百度披露被黑原委 黑客骗得邮箱
  14. 用户体验 | 银行如何优化APP用户体验
  15. 信息系统项目管理师必背核心考点(二十一)可交付成果
  16. Django中.py文件详解
  17. c语言省二级编程证书,c语言二级考试
  18. 使用:js 中 url 传参
  19. Python解决图文验证码登录识别(1)
  20. Golang: glog 的使用

热门文章

  1. 【射影几何02】拓广平面
  2. 云计算安全测评:云应用安全
  3. 怎样一份简历,能够撬开大厂的大门?
  4. 登陆服务器出现身份验证错误,登录服务器,提示“发生身份验证错误。要求的函数不受支持”的解决办法...
  5. Final Cut Pro X 精选插件合集!
  6. Tasteless challenges hard WP
  7. 一文搞懂 Python 私有属性 私有方法
  8. 视频码率,帧率和分辨率
  9. 20200321——IO 多路复用
  10. IDEA Maven遇到的问题 wating for maven import completionomitted for duplicate jar