操作系统(一)--概述

2023-11-11

1、

操作系统是紧贴硬件之上,所有其他软件之下(是其它软件的环境),用来管理硬件(使cpu、I/O设备和存储空间能够有效利用,管理分配软硬件资源,合理组织计算机工作流程(作业管理,进程管理)),实现用户接口(弥补硬件系统的类型和数量的差别)。将覆盖了软件的机器称为扩充机器或虚拟机,因此,OS是扩展机/虚拟机

2、管理硬件资源:处理器管理(cpu)、存储器管理(内外存)、I/O管理、文件管理。

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

3、用户接口

--用户使用OS的方式,也就是通过操作系统来管理查看硬件资源的方式有:命令行cmd(命令接口)、菜单式、命令脚本式,  这些方式都是要通过图形用户接口实现(图形、窗口等)

--程序员使用OS的方式,也就是程序员编写程序的时候用到文件资源时,用到的是:系统调用(程序接口,形式上类似于过程调用,在应用编程中使用)。

4、OS的基本特征并发性(并发应区别于并行,并发指的是同一时间段内发生,而并行指的是同一时刻发生。在多道程序处理时宏观上并发,微观上交替并行(单处理器情况),程序的静态实体是可执行的文件也就是要使用的资源,动态实体是进程或称为任务,并发指的是进程或线程的并发)

                            共享性(这里的共享指的是系统中的资源可供内存中的多个并发执行的进程(线程)共同使用。从这里就可以看出OS并发和共享的特征是相互依存的。因资源属性不同,对资源共享的方式也不同,分为互斥共享(音频设备,打印机)、同时访问(可重入代码,磁盘文件))

                          虚拟性(通过某种技术把一个物理实体变为若干个逻辑上的对应物,以便提高资源利用率,通俗的讲就比如一部手机上既运行着微信也运行着微博,一段时间内你在刷着微博,这时候微信收到一条消息,两个进程并发执行,它们都使用cpu,但物理上的cpu只有一个,两个都要用就只好虚拟成每个进程对应一个逻辑的cpu,但这的cpu是虚拟的,虚处理机,此外还有虚存储器(每个进程都占有的地址空间,指令+数据+堆栈),虚拟的显示设备(多窗口或虚拟终端),虚拟的打印设备(将临界资源变为同时访问资源))

                         异步性 (不确定性,进程的执行顺序和执行时间的不确定性)

5、关于操作系统的运行环境(也就是cpu的状态:内核态和用户态)

特权指令:为编制系统管理程序专门设置的,只有操作系统才能使用,如果用户误用这些特权指令,会被看作非法指令而引起故障中断。

  • 有关I/O的指令
  • 访问程序状态字寄存器的指令
  • 存取特殊寄存器(如用于内存保护的寄存器)的指令
  • 其他访问系统状态和直接访问系统资源的指令

以上这些管理硬件设备的指令只能操作系统通过系统调用来使用。

为了让cpu知道当前运行的指令是否应该被执行,或者让操作系统知道哪些指令是应该被执行的,我们把cpu分为两个状态,目态(又称用户态,普态;较低的特权级别,程序执行时不可使用特权指令,I/O指令,时钟设置,中断机制,系统管理等)和管态(又称内核态,核心态,系统态,特权态;执行系统管理程序,可以使用特权指令)

现在问题来了cpu是如何判断用户程序和系统程序从而确定当前所处的状态的呢

根据程序状态字PSW(如进位标志位(CF)、溢出标志位(OF)、结果正负标志位(SF)、结果是否为0标志位(ZF)、奇偶标志位(PF)这些都是反映指令执行结果的各种状态信息,称为状态标志,还有中断标志位(IF),cpu的工作状态位(核心态还是用户态)等这些存放控制信息称为控制状态)记录cpu的运行模式和状态信息,

还有一个问题是用户态和核心态这两个状态之间是如何转变的,

核心态到用户态直接修改PSW就可以,

用户态到核心态因为用户不能修改PSW,因此只能通过系统调用(本质上也是利用访管指令)访管指令 采用中断机制来实现

6、中断与异常

中断指的是程序执行过程中,当发生某个事件时,中止cpu上现行程序的运行,引出处理该事件的程序这样一个执行过程。

根据中断性质和激活手段分为:

强迫性中断事件(机器故障中断、程序性中断、外部中断、输入输出中断

自愿性中断事件(例如执行某段程序产生缺页时将会中断,这时要等待操作系统去外存找到该页调入内存)。

根据中断信号的来源分为:

外中断(中断):来自处理器和主存之外的中断,包括:电源故障中断、时钟中断、控制台中断、I/O中断。不同的中断有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。

内中断(异常):来自处理器和主存内部的中断,包括:通路效验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。异常是不能被屏蔽的,一旦出现应立即响应并加以处理。

中断和异常的区别:

中断是由与现行指令无关的中断信号触发的(异步的),等现行指令执行完后再去响应它,中断的发生与cpu所处的状态(用户态还是核心态)无关。中断处理程序提供的服务不是为当前进程所需的,如时钟中断、硬盘读写服务请求中断。

异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序为当前进程服务。异常包括很多方面,有出错(fault),也有陷入(trap).

硬中断:中断和异常要通过硬件设施来产生中断请求。

软中断:不必由硬件发信号而引发,而是利用软件方式进行模拟,实现宏观上的异步执行效果。

              软中断是由内核或进程对某个进程发出的中断信号,可看作内核与进程或进程与进程直接用来模拟硬中断的一种信号通信方式。

中断处理程序的主要任务处理中断事件、恢复正常操作。不同的中断源对应不同的中断处理程序,所以快速找到中断处理程序的入口地址是一个关键的问题,中断处理程序主要做四项工作

  • 保护未被硬件保护的一些必要的处理状态。
  • 识别各个中断源,分析产生中断的原因。
  • 处理发生的中断事件。
  • 恢复正常操作。

                                                               

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

操作系统(一)--概述 的相关文章

  • MySQL基础(非常全)

    MySQL基础 一 MySQL概述 1 什么是数据库 答 数据的仓库 如 在ATM的示例中我们创建了一个 db 目录 称其为数据库 2 什么是 MySQL Oracle SQLite Access MS SQL Server等 答 他们均是
  • System.getProperty用法

    转自 http blog darkmi com 2011 03 16 1666 html System getProperty 用于获取当前的系统属性 比如java版本 操作系统名称 区域 用户名等 这些属性一般由jvm自动获取 不能手工设
  • 线程和进程的区别(面试必备)

    参考文章 https www jianshu com p 2dc01727be45 线程与进程的区别通俗的解释 https www jianshu com p 8ad441510860 附加可参考文章 https baijiahao bai
  • 文件管理系统(操作系统)——9张思维导图

    文件管理系统 1 文件管理 1 1 一个文件的逻辑结构 比如一个文本txt文件 又或者Excel文件 在我们用户看来 它是长什么样的 这个就是逻辑结构 几个概念 逻辑结构 就是指在用户看来 单个文件内部的数据应该是如何组织起来的 物理结构
  • windows下命令行修改系统时间;修改系统时间的软件

    找了很久 都没有找到 还找了关键词 dos下修改系统时间 因为看到linux下修改系统时间是用hwclock 命令写入主板芯片 而我由于某些原因想自动化修改系统时间 所以找windows下修改系统时间的软件 没有找到 有一个 意天禁止修改系
  • 掉电无法启动数据库问题解决

    由于突然掉电 造成客户在windows平台上10 2 0 1数据库无法驱动 以下是具体解决步骤 一 定位故障问题 1 启动数据库 查看错误 SQL gt startup ora 01113 file 1 needs media recove
  • Linux网络安全-Zabbix入门(一)

    一 基本概念 1 监控目的 运行情况 提前发现问题 2 监控资源类别 公开 tcp udp 端口 私有 cpu 磁盘 监控一切需要监控的东西 只要能够想到 能够用命令实现的都能用来监控 如果想远程管理服务器就有远程管理卡 比如Dell id
  • ps aux 和ps -aux和 ps -ef的选择

    Linux中的ps命令是Process Status的缩写 ps命令用来列出系统中当前运行的那些进程 ps命令列出的是当前那些进程的快照 就是执行ps命令的那个时刻的那些进程 如果想要动态的显示进程信息 就可以使用top命令 要对进程进行监
  • 虚拟机管理程序、虚拟化和云: 深入剖析 PowerVM 虚拟机管理程序

    预备知识 Power 是没有限制的虚拟化 一些企业打算依靠 PowerVM 虚拟化将多个工作负载整合到较少系统上 从而提高服务器利用率 降低成本 Power VM 为基于 Power Systems 平台的高级 RAS 功能和领先性能为 A
  • 操作系统PV操作及读者写者问题

    操作系统PV操作及读者写者问题 目录 1 信号量 2 P V操作原语可描述为以下式子 3 解释 4 互斥模式原理 5 同步模式原理 6 读者写者问题 1 信号量 PV操作与信号量的处理有关 信号量是表示资源的实体 是一个与队列有关的整型变量
  • Linux使用nvida-smi查看GPU类型

    nvida smi提供一个查看GPU信息的方法 然而这种方式不能查看GPU型号 型号被省略成了GeForce RTX 208 如果我们需要查看GPU的型号 只需要运行nvidia smi L即可 mrfive ubuntu nvidia s
  • Windows 添加永久静态路由

    route add p 10 10 0 0 mask 255 255 0 0 10 10 6 1 p 参数 p 即 persistent 的意思 p 表示将路由表项永久加入系统注册表
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • 使用inet_ntop转换IPv6地址时在macOS和linux上的行为不一样

    下面这段python代码在macOS和linux时运行的结果是不同的 import socket ip socket inet pton socket AF INET6 1 2 3 0 5 6 7 8 print socket inet n
  • Ubuntu9.04太多乱码(中文不能正常显示)

    最近在使用Ubuntu9 04的过程中 发现有好多地方都出现乱码 其实是中文不能正常显示 现在把我所遇到的所有乱码问题集中一下 方便以后查阅参考 一 Flash乱码 在终端输入 sudo gedit etc fonts conf d 49
  • Anaconda 安装 Python 库(MySQLdb)的方法-(转)

    安装python库的过程中 最重要的地方就是版本需要兼容 其中操作系统为64位 Python为2 X 64位 下载安装文件的时候也要注意版本匹配 其中文件名中包含的cp27表示CPython 2 7版本 cp34表示CPython 3 4
  • 《深入理解计算机系统》实验四Architecture Lab

    前言 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻请看 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻 我觉得这个文档对整个实验很有帮助 如果你的Y86 64环境还没安装好可以看
  • C#实现FTP文件夹下载功能【转载】

    网上有很多FTP单个文件下载的方法 前段时间需要用到一个FTP文件夹下载的功能 于是找了下网上的相关资料结合MSDN实现了一段FTP文件夹下载的代码 实现的思路主要是通过遍历获得文件夹下的所有文件 当然 文件夹下可能仍然存在文件夹 这样就需
  • MacOS中清除原有ssh公钥方法

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 用ssh的跳转登录服务器后 ssh会把你每个你访问过计算机的公钥 public key 都记录在 ssh known hosts 当下次访问相同计算机时 SSH会核对公钥
  • 八股文打卡day20——操作系统(3)

    面试题 线程同步的方式有哪些 我的回答 多线程同时访问和修改某个数据的话 会造成数据的不一致和冲突问题 所以就需要线程同步 线程同步的方式有 1 互斥锁 互斥锁就是 当一个资源被访问和操作时 会对这个资源加锁 把这个资源锁定 其他线程不能对

随机推荐

  • html取出单元格中的数值_简单爬取html页面的表格中的数据

    关于爬虫方面本人小白一个 通过无所不能的度娘 从中汲取营养 得到一个简单的能用的例子 在这分享一下 供大家一起汲取 首先说一下 你想从一个页面中获取到你想要的数据 首先你要先得到这个页面 然后把获取到的页面 使用Jsoup解析成 Docum
  • 如何使用挂载磁盘和windows服务器进行文件传输?

    如何远程连接windows服务器 相信对于使用过windows服务器的朋友来说这都是非常简单的事情 但是对于如何以及为什么挂载本地磁盘到windows服务器 很多新手就不明白为什么了 那么今天行云管家赵博士就来教大家怎样将本地磁盘挂载到到w
  • Windows10下配置Jmeter环境变量

    安装之后配置环境变量的步骤如下 1 点 此电脑 右键选 属性 2 选择 高级系统设置 环境变量 如下图 3 新建环境变量JMETER HOME 如下截图 4 点击确定之后 编辑 CLASSPATH 的变量 在变量值最后追加内容 JMETER
  • 你要的住宅地产行业数据化解决方案来啦!

    传统标准化复制品和服务越来越难以应付市场需求与行业竞争格局的改变 众多房地产企业寻求数字化转型 在转型过程中 会遇到各种各样的挑战 而一套合适的住宅地产行业数据化解决方案会解决很多难题 助力房企顺利实现转型 我推荐帆软住宅地产行业数据化解决
  • 记一次JAVA自定义@interface中方法定义诡异问题

    诡异问题描述 使用IDEA工具 正常不报错但是执行mvn install的时候 出现了大量的方法和属性不存在提示错误 实际上都要是存在 但无论如何都编译不通过 这种场景有点类似于在一个类中少了个大括号 然后真个类报错的那种感觉 问题查找 排
  • Dyna-Q算法的理论基础及其代码实践【CliffWalking-v0】

    Dyna Q 理论基础 强化学习中 模型 通常指与智能体交互的环境模型 即对环境的状态转移概率和奖励函数进行建模 根据是否具有环境模型 强化学习算法分为两种 基于模型的强化学习 model based 无模型的强化学习根据智能体与环境交互采
  • 2016年蓝桥杯省赛生日蜡烛题目

    生日蜡烛 问题描述 某君从某年开始每年都举办一次生日party 并且每次都要吹熄与年龄相同根数的蜡烛 现在算起来 他一共吹熄了236根蜡烛 请问 他从多少岁开始过生日party的 请填写他开始过生日party的年龄数 注意 你提交的应该是一
  • logistic回归_二元logistic回归分析

    SPSS学习乐园 点击上方 蓝色 字体可关注 logistic回归 前面介绍过多重线性回归分析 该分析方法是研究一个因变量 服从正态分布 与多个自变量的数量关系 多重线性回归分析 在医学研究中 常常需要研究的结局变量不是连续型变量 而是二分
  • Windows 重装系统-U盘启动盘制作及启动

    重启可以解决90 的问题 重装系统可以解决99 9 的问题 本文主要记录一下 相关过程及相关注意事项 以联想电脑为例 一 制作U盘启动盘 准备工具 U盘 最好8G以上 电脑 联网 注意 1 制作完成后U盘会被格式化 1 浏览器搜索 win1
  • GD32F103基础教程—跑马灯实验(六)

    一 教程简介 本章主要是讲解多路GPIO输出实验 及相关GPIO输 出配置方法 并控制LED2和LED3灯实现间隔1s闪烁 二 实验流程 1 工程配置 跑马灯工程配置方法与第五章的配置方法一致 具体请 查看第五章教程 本章不再赘述 2 源码
  • linux下kbhit的头文件,linux下kbhit的实现

    我们知道 在windows下有个键盘测试函数 int kbhit void 使用该函数需要包含头文件conio h 执行时 kbhit测试是否有键盘按键按下 若有则返回非零值 否则返回零 在Unix Linux下 并没有提供这个函数 在li
  • Matlab似然比检验函数,似然比检验 (LR test)

    计量中检验的一般套路是以 p value 显著 拒绝原假设为理想情况 然而总有几个检验的假设是不按套路出牌的 Hansen 检验算一个 LR 检验算第二个 Stata 应用 LR 检验可用于模型的比较和选择 用法与 Hausman 检验相似
  • 【Python基础】之字符串格式化(%百分号形式和format形式)

    字符串的格式化主要有两种 第一种是 形式的 第二种是python特有的 format形式 百分号形式 s 我是 s 我今年 d岁 mary 18 print s 我是mary 我今年18岁 format形式 t 我是 我今年 岁 forma
  • Android studio配置Google play服务

    Android studio配置Google play服务 1 File gt settings gt Android SDK gt SDK tools gt 勾选 Google Play services 然后Apply OK即可 可参考
  • OpenCV-Python实战(1)——OpenCV简介与图像处理基础

    OpenCV Python实战 1 OpenCV简介与图像处理基础 OpenCV介绍 Python安装OpenCV OpenCV主要模块 OpenCV应用场景 OpenCV图像处理基础 图像基础 图像处理中的主要问题 图像处理流程 像素 颜
  • 将整数n分成k份(回溯)

    Name 将整数n分成k份 回溯 Copyright Author 巧若拙 Date 16 12 18 13 25 Description 将整数n分成k份 将整数n分成k份 且每份不能为空 任意两份不能相同 不考虑顺序 例如 n 7 k
  • [单片机]KeilC51简单流水灯制作与原理

    P1 单行最简流水灯示例 首先先看原理图 下面为对应解释 最好使用低电平驱动 所谓低电平驱动就是引脚部分为低电平 就如图中电路所示 VCC处于LED右侧 故LED右侧高电平而其左侧低电平 符合条件 这里使用八个LED 自上而下排列 注意这里
  • SaaS架构实现理论(三)可配置多租户

    互联网时代的软件革命 SaaS架构 学习笔记三 1 Multi Tenant应用的可配置性 1 1数据可配置 有些租户想要存储 对其有用 有些租户不想 对其无用 这种系统实现过滤中并不存在 而用户又需要保存的数据 称之为扩展数据 多租户的S
  • Response.setContentType(MIME)的作用及参数列表

    Response setContentType MIME 的作用是时客户端的浏览器区分不同种类的数据 并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据 MIME的作用 由于MIME类型与文档的后缀相关 因此服务器使用文档的
  • 操作系统(一)--概述

    1 操作系统是紧贴硬件之上 所有其他软件之下 是其它软件的环境 用来管理硬件 使cpu I O设备和存储空间能够有效利用 管理分配软硬件资源 合理组织计算机工作流程 作业管理 进程管理 实现用户接口 弥补硬件系统的类型和数量的差别 将覆盖了