操作系统的硬件环境

news/2024/11/28 7:47:16/

目录

1、定时装置

2、堆与栈

3、寄存器

4、特权指令与非特权指令

5、处理器状态及状态转换

6、地址映射机构

7、存储保护设施

8、中断装置

9、通道与DMA

10、IO保护


1、定时装置

  • 绝对时钟:记载实际时间,不发中断。
  • 间隔时钟:定时发生中断,一般间隔单位为“毫秒”。

绝对时钟是必要的,操作系统通过根据绝对时钟的值记录作业进入系统和处理时间、文件的修改和存取时间、资源占用时间、日志记录时间等。

间隔时钟是实现多道程序的基础—保证操作系统获得控制权。 其它中断也进入操作系统,但是否发生,何时发生没有保障。(中断时系统并发必要条件按,即只有通过中断才能实现多道批处理

2、堆与栈

:属于用户空间,用于保存程序中的动态变量

用户栈:属于用户空间,用于保存用户函数调用时返回点、参数、局部变量、返回值,传动调用操作系统时传给操作系统的值。

系统栈:也成为核心站,在逻辑上属于操作系统空间,用于保存中断现场,保存子程序转移返回点、参数、局部变量、返回值 

程序切换的同时伴随着堆、用户栈、系统栈的切换,但硬件的指针时多个进程共享的。

3、寄存器

硬件系统提供一套寄存器,由运行进程使用。切换程序时,一般要把寄存器的当前值保存起来,再次运行前再次恢复。这些寄存器有:

程序状态字(PSW)

指令计数器(PC):记载运行程下一条指令地址

栈指针SP:管态和目态各一个,分别保存系统栈和用户栈的栈顶位置。

通用寄存器(regs):若干个,用于存数和计算,还可以用来保护系统调用时传给操作系统的参数,以及由操作系统传给用户的返回值。

浮点寄存器(fregs):若干个,用于存数和计算,也可以用来保存系统调用时传给操作系统的参数,以及由操作系统传给用户的返回值。

地址映射寄存器:一般有一对,分别记录内存区域的起始地址和长度,分别成为基地寄存器(base)和限长寄存器(limit)

4、特权指令与非特权指令

特权指令(privileged instruction) 只有在管态才能执行的指令(影响系统状态)

     关中断,置程序状态字,停机, IO,…….

非特权指令(non-privileged instruction)所有程序可用(不影响系统状态),即管态和目态下均可运行

     取数,四则运算,……

5、处理器状态及状态转换

处理机状态

系统态(system mode)(管态,核态),即管态是操作系统运行时所处的状态

用户态(user mode) (目态,常态),即目态是一般用户程序运行时所处的状态

状态转换

管态 =>目态(置程序状态字,特权指令)

目态 => 管态(中断,trap)

6、地址映射机构

逻辑地址=>物理地址

逻辑地址(虚地址):程序中产生的地址

物理地址(实地址):存储器地址

7、存储保护设施

防止应用程序

侵犯操作系统空间; 侵犯其它用戶空间.

地址检查

越界检查; 越权检查(对共享区域).

8、中断装置

发现并响应中断的硬件机构

当前(PSW,PC)=>系统栈

中断向量(PSW,PC)=>寄存器

9、通道与DMA

通道:负责IO操作的处理机

通道指令系统

读写操作 控制操作 转移操作

通道运控部件

  • 通道地址字CAW
  • 通道命令字CCW
  • 通道状态字CSW
  • 通道数据字CDW

10、IO保护

定义所有IO指令为特权指令。

  • 方便使用
  • 防止发生冲突

http://www.ppmy.cn/news/455083.html

相关文章

一文详解Softmax的性质与Self-Attention初步解析

概述 最近研究超平面排列(Hyperplane Arrangement)问题的时候,发现ReLU有其缺陷,即举例来说,ReLU 无法使用单一的超平面将分离的所有数据,完整的输出,即只会输出半个空间映射的数据,而另一半空间的数据被置…

CentOS7 安装 主题、图标、壁纸

安装 Numix 主题和图标(个人喜欢Numix的图标) sudo yum install numix-gtk-theme numix-icon-theme-circle安装 paper 图标 sudo yum install paper-icon-theme安装 xenlism 主题、图标和壁纸 sudo yum install xenlism-wildfire*安装 arc 主题(个人喜欢arc的主题) sudo yu…

达梦数据库介绍

文章目录 前言一、达梦数据库的定位二、达梦有哪些工具1、达梦管理工具2、达梦数据迁移工具3、 达梦数据库配置助手4、其它工具 三、Linux下的工具1、数据库初始化工具2、数据库迁移工具3、其它工具 四、其它连接工具总结 前言 近几年由于各种原因,国内开启了一波国…

弹性盒(Flexbox)布局完全指南:实现灵活自适应的网页排列

弹性盒(Flexbox) 弹性盒(Flexbox)是一种CSS布局模型,旨在为网页提供灵活的、自适应的排列方式。它通过定义容器和内部项目的行为,使得页面元素能够以可预测的方式在容器中进行排列和分布。 弹性盒的使用 通过设置容器的display属性为flex或inline-flex来将其声明为弹性盒…

【第五次】21级计科计算机组成原理课外练习

【第五次】21级计科计算机组成原理课外练习 一、单选题二、多选题三、填空题 一、单选题 2-1 在下列存储器中,哪一种可以在线进行擦除和重写的非易失性存储器? A.FLASH B.DRAM C.SDRAM D.SRAM 2-2 在下列存储器中,断电后所存数据也不会改变…

某农业大学c/c++第五次实验(类和对象)

1.Time时间类 【问题描述】 设计一个Time类,并设计多个重载的构造函数,可以设置时间、进行时间的加减运算、按12小时格式和24小时格式输出时间。 例如: 其中构造函数Time::Time(int s)根据总秒数计算hour、minute、second并构造对象&#x…

创建nextjs项目动态路由

官网 创建nextjs项目 npx create-next-applatest # or yarn create next-app开始nextjs服务 yarn dev #npm run dev修改next项目 pages/index.js {/*可以修改为pages/index.jsx*/} import styles from /styles/Home.module.css import Test from "/components/Test/Tes…

go初识iris框架(一)

iris初始化项目 我找到的文档 mkdir myappcd myappgo mod init myapp对go mod不是很清楚的可以看这篇 go get github.com/kataras/iris/v12latest如果出现以下问题,可以尝试go env -w GOPROXYhttps://goproxy.io,direct go env -w GOPROXYhttps://goproxy.io,di…