前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >操作系统 概论

操作系统 概论

作者头像
Meng小羽
修改于 2019-12-23 07:25:51
修改于 2019-12-23 07:25:51
8710
举报
文章被收录于专栏:Debug客栈Debug客栈

操作系统的概念

计算机系统

计算机系统包括硬件子系统软件子系统

各种程序和数据组成了计算机的软件系统。

操作系统:在计算机系统中,集中了资源管理功能和控制程序执行功能的一种软件。

操作系统的定义

“有效”是指根据用户的不同的要求,在管理计算机资源时考虑到系统运行的效率及资源的利用率。

“合理”是指操作系统要“公平对待”不同的用户程序,保证系统不发生“死锁”及“饥饿”现象。

操作系统的特征

  1. 并发性 是指在计算机系统中同时存在若干个运行的程序。计算机的并发行体现在下面两个方面:
    • 用户程序与用户程序之间并发执行
    • 用户程序与操作系统之间并发执行
  2. 共享性
  3. 随机性

研究操作系统的观点

  1. 软件的观点 操作系统就是一种大型的软件系统,它是多种功能程序的集合。
    • 外在特性 操作系统是一种软件,它的外部表现形式,即它的操作命令定义集和它的界面,完全确定了炒作系统这个软件的使用方式。
    • 内在特性 操作系统既然是臃肿软件,他就具有一般软件的结构特点。
  2. 资源管理的观点操作系统就是负责记录谁在使用什么样的资源。 操作系统要提供一些机制去协调程序间的竞争与同步,提供机制对资源进行合理使用,对其保护,一机采取虚拟技术来“扩充”资源等。
  3. 进程的观点 操作系统就死看作是由多个可以独立运行的程序和一个对这些程序进行协调的核心所组成的。
  4. 虚拟机的观点
  5. 服务提供者的观点

操作系统的功能

  1. 进程管理 对中央处理器进行管理。 进程管理分为一下几个方面:
    • 进程控制进程控制的主要任务就是创建进程、撤销结束的进程以及控制进程进行时候的各种状态的转换。
    • 进程同步
      • 互斥 :是指多个进程对临界资源访问时采用互斥的形式。
      • 同步 :是在相互协作共同完成任务进程之间,用同步机制协调他们之间的执行顺序。
    • 进程间通讯进程通讯主要发生在相互协作的进程之间。由操作系统提供给的进程间的通讯机制是协作的进程之间相互交换数据和消息的手段。
    • 调度 调度又称处理器调度,通常包括进程调度、线程调度及作业调度。
      • 进程调度 任务就是从进程(线程)的就绪队列中按照一定的算法挑选出一个,吧处理器资源分配给他,并准备好特定的执行上下文让他执行起来。
      • 作业调度 依照作业说明书为他们分配一定的资源,把他们装进内存并未每个作业建立相应的进程。
  2. 存储管理存储管理的任务就是管理计算机内存的资源。
  3. 文件管理 文件管理的任务就是有效的支持文件的存储、检索及修改等操作,解决文件的共享、保密及保护问题,以使用户方便、安全的访问文件。
  4. 设备管理
  5. 用户接口 用户计算机系统之间的接口。

操作系统的发展

手工操作

通过在插板上的硬连接线来控制计算机的基本功能。

监控程序(早期批处理)

多道批处理

多道 是指允许多个程序同时存在于内存之中,由CPU以切换的方式为之服务,使得多个程序可以同时执行。

分时系统

分时系统 是指多个用户通过终端设备与计算机交互作用来运行自己的作业,并且共享一个计算机系统而互不干扰。

UNIX通用操作系统

C语言编写。

个人计算机操作系统

Android操作系统

操作系统分类

批处理操作系统

批处理操作系统特点就是成批处理。

作业吞吐率:在单位时间内计算机系统处理作业的个数。

设计思想

在监控程序启动之前,操作员有选择的把若干作业合并成一批作业,将这些作业安装在输入设备之上,然后自动监控程序,监控程序将自动控制这批作业执行。

一般指令与特权指令

运行模式通常分为用户模式和特权模式。

目态: 为用户服务的用户模式。

管态: 为系统专用的特权模式。

系统调用的过程
  1. 系统调用时,通常是中断或者异常处理,将处理器模式转变成特权模式。
  2. 由监控程序执行被请求的功能代码。
  3. 处理结束之后,监控程序恢复系统调用之前的现场;把运行模式从特权模式恢复成为用户方式;最后将控制权转移到原来的用户程序。
SPOOLing技术(假脱技术)

基本思想: 用磁盘设备作为主机的直接输入/输出设备,主机直接从磁盘上选取作业运行,作业的执行结果也存在磁盘上;相应的,通道则负责将用户作业从卡片机上动态写入磁盘,而这一操作与主机并行。

分时系统

基本工作方式

在分时系统中,一台计算机主机连接了若干个终端,每个终端可有一个用户使用。

设计思想

分时系统将CPU的时间划分成若干个小片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。

特点
  1. 多路性: 只有多个用户在使用同一台计算机。
  2. 交互性: 指用户根据系统响应的结果提出下一个请求。
  3. 独占性: 指每个用户感觉不到计算机在为其他人服务。
  4. 及时性: 指系统能够对用户提出的请求及时给予响应。

分时操作系统追求的目标 :及时响应用户输入的交互命令。

分时与批处理的处理原则 :分时优先,批处理在后。

实时操作系统

实时操作系统(RTOS)是指计算机能在规定的时间内及时响应外部事件的请求,同时完成对该事件的处理,并能够控制所有实时设备和实时任务协调一致の工作的操作系统。

硬实时系统 对关键外部事件的响应和处理时间有着极为严格的要求,系统必须满足这种严格的时间要求,否则会产生严重的不良后果。

软实时系统 对事件的响应和处理时间有一定的时间范围要求,不能满足相关的要求会影响系统的服务质量,但是通常不会引发灾难性后果。

实时时钟管理

主要设计目标:对实时任务能够进行实时处理。

依据时间要求:

  • 定时任务: 依据用户定时启动并按照严格的时间间隔重复运行。
  • 延时任务: 非周期运行,允许被延后执行,但往往有一个严格的时间线界限。

依据功能划分:

  • 主动式任务: 依据时间间隔主动运行,多用于实时监控。
  • 从动式任务: 运行以来于外部时间的发生,但外部事件出现时,这种实时任务应尽可能地进行处理,并且保证不丢失现象。
过载防护

实时任务的启动时间和数量具有很大的随机性,突发的大量实时任务极有可能超出系统的处理能力,从而发生过载。

高可靠性

嵌入式操作系统EOS

嵌入式操作系统就是运行在嵌入式环境芯片中,对整个芯片以及它所操作的、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件。

优点 具有高可靠性、实时性、占用资源少、智能化能源管理、易于连接、低成本等优点。

个人计算机操作系统PCOS

个人计算机操作系统是一种单用户多任务的操作系统。

网络操作系统NOS

网络操作系统:为计算机网络配置的操作系统。

分布式操作系统DOS

将大量计算机通过网络连接在一起,可以获得极高的运算能力及广泛的数据共享。

特征:

  1. 是一个统一的操作系统。
  2. 实现资源的深度共享。
  3. 透明性。
  4. 自治性。

集群 Cluster是分布式系统的一种,一个集群通常由一群处理器密集构成,集群操作系统专门服务于这样的集群。用低成本的微型计算机和以太网设备等产品,构造出性能相当于超级计算机运行性能的集群。

智能卡操作系统COS

四个基本功能:资源管理、通信管理、安全管理和应用管理。

操作系统结构

操作系统结构就是指操作系统各部分程序存在方式及相互关系。

  • 模块结构: 以程序模块方式存在。
  • 进程结构: 以进程的方式存在。

整体式结构

模块 将总功能分解成若干个子功能,实现每个子功能的程序。

优点:结构紧密,接口简单直接,系统效率较高。

模块组合法 (又称无需模块法,模块接口法),系统中的模块不是根据程序和数据本身的特性而是根据他们完成的功能来划分的,数据基本上作为全称量使用。

层次结构

层次结构就是把操作系统的所有功能模块,按照功能流程图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单项依赖或则单先调用

全序的层次关系: 每一层中的同层模块之间不存在相互调用的关系。

优点:

  • 整体问题局部化
  • 各模块之间的组织架构和依赖关系清晰明了。

分层原则:

  • 可适应性,方便于系统一直,可放在仅靠硬件的最底层。BIOS但硬件系统环境改变时只需要修改这一层模块就可以。
  • 多种操作方式, 共同要使用的基本部分放在内层,而改变的部分放在外层。

微内核结构(C/S结构)

采用C/S结构的操作系统适宜于应用在网络环境下分布式处理的计算环境。

特点:

  • 运行在核心态的内核:线程调度、虚拟内存、信息传递、设备驱动以及内核的原语操作集中中断处理等。
  • 运行在用户态的并以C/S方式运行的进程层:除内核部分外,操作系统所有的其他部分被分成若干个相对独立的进程,每一个进程实现一组服务,称为服务进程。
  • 这些服务进程可以提供各种系统功能、文件系统服务以及网络服务等。

好处:

  • 可靠: 每一个分支是独立的,不会引起其他组成部分的损坏或崩溃。
  • 灵活: 是自包含的,且接口规范,可维护性好。
  • 分布式处理:具有分布式处理的能力。

缺点:

  • 效率较低。

本文链接:https://cloud.tencent.com/developer/article/1557682

本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React字符串形式的ref
在React中,我们可以使用字符串形式的ref来引用组件或DOM元素。字符串形式的ref是一种较早的ref使用方式,它允许我们通过字符串将ref与组件或DOM元素进行关联。
堕落飞鸟
2023/05/19
5820
在React 中,如何创建refs?
在类组件中,可以使用 React.createRef() 方法来创建 ref 对象。通常,在组件的构造函数中将 ref 赋值给类的实例属性。
王小婷
2023/10/10
7770
React 中refs的使用方法和步骤
在 React 中,ref 是一种用于访问组件或 DOM 元素的引用的特殊属性。在组件中存储对 DOM 节点或组件实例的引用,直接访问和操作
王小婷
2023/10/10
4480
【React】:Refs
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。
WEBJ2EE
2020/04/07
1.1K0
[OHIF-Viewers]医疗数字阅片-医学影像-REACT-React.createRef()-Refs and the DOM关于回调 refs 的说明
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。
landv
2020/07/09
1.8K0
React ref 的前世今生
众所周知,React 通过声明式的渲染机制把复杂的 DOM 操作抽象成为简单的 state 与 props 操作,一时圈粉无数,一夜间将前端工程师从面条式的 DOM 操作中拯救出来。尽管我们一再强调在 React 开发中尽量避免 DOM 操作,但在一些场景中仍然无法避免。当然 React 并没有把路堵死,它提供了 ref 用于访问在 render 方法中创建的 DOM 元素或者是 React 组件实例。
Nealyang
2019/09/29
8980
浅谈 React Refs
在React组件中,props是父组件与子组件的唯一通信方式,但是在某些情况下我们需要在props之外强制修改子组件或DOM元素,这种情况下React提供了Refs解决
IMWeb前端团队
2019/12/03
1K0
浅谈 React Refs
React的三大属性之refs的一些简单理解
React 将在组件挂载时,会调用 ref 回调函数并传入 DOM 元素,当卸载时调用它并传入 null。在 componentDidMount 或 componentDidUpdate 触发前,React 会保证 refs 一定是最新的。
henu_Newxc03
2021/12/26
8720
小结React(三):state、props、Refs
在React中state、props、Refs都是最基础的概念,本文将同时梳理下这三个知识点,主要内容包括:
前端林子
2019/05/02
7.5K1
小结React(三):state、props、Refs
React框架基础
郭顺发
2023/07/17
2260
react面试题
调用setState之后发生了什么? 在代码中调用setState函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(Reconciliation)。经过调和过程,React 会以相对高效的方式根据新的状态构建 React 元素树并且着手重新渲染整个UI界面。在 React 得到元素树之后,React 会自动计算出新的树与老树的节点差异,然后根据差异对界面进行最小化重渲染。在差异计算算法中,React 能够相对精确地知道哪些位置发生了改变以及应该如何改变,这就保证了按需更新,而不是全部重新渲染。 扩展1: setState的第一个参数除了对象,还能传什么? ---函数,参数为当前state
用户7162790
2022/03/23
7260
腾讯前端二面react面试题合集
该方法当props发生变化时执行,初始化render时不执行,在这个回调函数里面,你可以根据属性的变化,通过调用this.setState()来更新你的组件状态,旧的属性还是可以通过this.props来获取,这里调用更新状态是安全的,并不会触发额外的render调用。
goClient1992
2022/09/14
1.8K0
React回调形式的ref
在React中,我们可以使用回调形式的ref来引用组件或DOM元素。回调形式的ref允许我们在组件渲染后执行自定义的回调函数,并将组件或DOM元素的引用作为参数传递给回调函数。
堕落飞鸟
2023/05/19
6950
React篇(033)-如何创建 refs?
这里有两种方案 这是最近增加的一种方案。Refs 是使用 React.createRef() 方法创建的,并通过 ref 属性添加到 React 元素上。为了在整个组件中使用refs,只需将 ref 分配给构造函数中的实例属性。 class MyComponent extends React.Component { constructor(props) { super(props) this.myRef = React.createRef() } render() { r
齐丶先丶森
2022/05/12
6330
前端必会react面试题合集2
(2)如果已经创建了 Create React App 项目,需要将 typescript 引入到已有项目中
beifeng1996
2023/01/04
2.3K0
常见react面试题(持续更新中)
每个React组件强制要求必须有一个 render()。它返回一个 React 元素,是原生 DOM 组件的表示。如果需要渲染多个 HTML 元素,则必须将它们组合在一个封闭标记内,例如 <form>、<group>、<div> 等。此函数必须保持纯净,即必须每次调用时都返回相同的结果。
beifeng1996
2022/12/16
2.7K0
【React】243- 在 React 组件中使用 Refs 指南
本文通过四种方式来告诉你如何使用,虽然有一种被放弃了。今日早读文章由老虎集团@joking_zhang翻译授权分享。
pingan8787
2019/07/25
4.1K0
【React】243- 在 React 组件中使用 Refs 指南
从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/...)
牧云云
2018/08/14
8470
从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现
React 16.3新API
之前也有context,相当于自动向下传递的props,子树中的任意组件都可以从context中按需取值(配合contextTypes声明)
ayqy贾杰
2019/06/12
1.1K0
React 16.3新API
【React】你想知道的关于 Refs 的知识都在这了
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。
Nealyang
2019/11/08
3.1K0
相关推荐
React字符串形式的ref
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档