非零基础自学计算机操作系统 第1章 操作系统概述 1.5 操作系统的硬件环境 1.5.1 定时装置 1.5.2 堆与栈 1.5.3 寄存器

news2024/11/17 7:53:19

非零基础自学计算机操作系统

文章目录

      • 非零基础自学计算机操作系统
      • 第1章 操作系统概述
        • 1.5 操作系统的硬件环境
          • 1.5.1 定时装置
          • 1.5.2 堆与栈
          • 1.5.3 寄存器

第1章 操作系统概述

1.5 操作系统的硬件环境

构建一个高效、可靠的操作系统,硬件需要提供哪些支持?

1.5.1 定时装置

为实现系统的管理和维护,硬件必须提供定时装置,也就是实时时钟。硬件时钟通常有两种,即绝对时钟和间隔时钟。

【1】绝对时钟

绝对时钟类似于电子表,其时间表示形式为年:月:日:时:分:秒。绝对时钟的值保存于硬件寄存器中,开机时可由电源供电计时,关机时可由机内电池供电计时,其值可由程序设定和修改,但是一般通过特权指令完成。当然,程序也可以读取绝对时钟的值。

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

【2】间隔时钟

间隔时钟也称为闹钟,它每隔固定的时间,如10ms,发生一次时钟中断。时钟中断发生后,操作系统获得系统的控制权,以便运行系统管理和实现程序并发。后面将会看到,中断是系统并发的必要条件,即只有通过中断才能实现多道程序设计。尽管除时钟外还有其他可能引起中断的事件,但是那些事件是否发生、何时发生都不确定,而只有时钟中断是最“忠实可靠”的,可见间隔时钟是现代操作系统的基础

利用间隔时钟还可以实现逻辑时钟,例如,要实现一个50ms的逻辑时钟,可以设置一个初值为5的变量,每次时钟中断将变量值减1,当其值减至0时即达到50ms。

1.5.2 堆与栈

在计算机学科领域中,“堆”和“栈”是两种不同的数据结构,用途截然不同,尽管用户进程的“堆”和“栈”在物理上通常是相邻的。

每个运行程序都有一个堆和两个栈(一个用户栈,一个系统栈)。

堆属于用户空间,用于保存程序中的动态变量,例如树的结点,堆空间由操作系统分给运行程序,由于不同程序运行时对动态变量的使用情况不尽相同,因而堆空间大小需求不定

为了既节省空间又能满足所有程序对堆空间的需求,操作系统一般为运行程序分配一个基本大小的堆,如8KB,如果程序运行时对堆空间的需求没有超过8KB,则不需要操作系统进一步的帮助,对堆空间的使用由应用软件管理;但如果用户程序运行时对堆的需求超过了8KB,则会发生中断,操作系统为其扩充堆空间,如再分配8KB,如此继续下去。

用户栈属于用户空间,用于保存用户函数调用时的返回点、参数、局部变量、返回值

除此之外用户栈还有一个用途,即传送调用操作系统时传给操作系统的参数。用户程序调用操作系统时,有两个载体可以用来传递参数:寄存器和用户栈,对于比较小的数据,如一个字符、一个整数、一个浮点数,可以通过寄存器传递:但比较长的参数,如文件名(字符串),寄存器通常是放不下的,只能通过用户栈传递。

对每个系统调用,操作系统都规定了参数和返回值的存放位置,用户程序必须遵循相应的规定。

系统栈也称核心栈,系统栈在逻辑上属于操作系统空间,主要有两个用途:一是保存操作系统子程序间相互调用的返回点、参数、局部变量、返回值,当然长度较小的参数和返回值也可以通过通用寄存器传递,这个用途与用户栈相似:二是中断响应时保存中断现场,包括PSW和PC,以及中断处理过程中用到的寄存器值。

对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出。

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

1.5.3 寄存器

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

① 程序状态字(program status word,PSW):如图下所示,

在这里插入图片描述

IBM360/370程序状态字由16B组成,表示当前程序的运行环境,其中每个“X”表示1B(4b)。其中,前8位为系统屏蔽位,第06位分别对应7个通道通道,第7位对应外中断:第1215位为CMWP,第13位为开关中断位M,第15位为系统状态位P;第1631位为中断码,用于保存中断字(详细中断信息):第3638位为程序屏蔽位,分别对应定点溢出、十进溢出、阶下溢;第39位备用。

可以看出,有些中断是不可屏蔽的,如时钟、地址越界、缺页、非法指令。

② 指令计数器(PC),记载运行程序下一条指令的地址。

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

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

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

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

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

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

相关文章

MySQL数据库基本使用(一)-------登录及查看基本信息

1.MySQL登录命令 格式如下: mysql -h 主机名 -P 端口号 -u 用户名 -p密码例如: mysql -h localhost -P 3306 -u root -pabc123 # 这里我设置的root用户的密码是abc123注意: -p与密码之间不能有空格,其他参数名与参数值之间可以…

Spring Boot启动原理源码

Spring Boot启动原理源码 注意:这个springboot启动源码和springboot自动配置原理的源码是十分重要的,面试的时候要是问springboot,一般都会问这两个。 源码: SpringBoot 事假监听器发布顺序: 1.ApplicationStartingEvent 2.ApplicationEnvironmentPrepa…

springboot+mybatis配置多数据源实战

1.背景说明 2.配置多数据源步骤 2.1 项目结构变更 2.2 添加配置类 2.3 修改配置文件数据连接配置信息 1.背景说明一般一个项目中只会连接一个数据库.但是随着需求变更,会要求同一个项目中连接多个数据库,本文就讲一下如何在一个项目中对多…

usaco training刷怪旅 第一层第二题 Greedy Gift Givers

usaco training 关注我持续创作training题解 翻译有点奇葩,我就上原题目了,各位自己翻译吧QwQ A group of NP (2 ≤ NP ≤ 10) uniquely named friends has decided to exchange gifts of money. Each of these friends might or might not give some m…

一种基于PCI总线的反射内存卡设计

一种基于PCI总线的反射内存卡设计 摘要: 对实时传输, 传统的以太网络由于传输协议开销的不确定性, 很难满足实时网络的要求, 实时网络是一种应用于高实时性要求的专用网络通信技术, 一般采用基于高速网络的共享存储器…

Python爬虫实战,requests+openpyxl模块,爬取小说数据并保存txt文档(附源码)

前言 今天给大家介绍的是Python爬取小说数据并保存txt文档,在这里给需要的小伙伴们代码,并且给出一点小心得。 首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多…

web网页设计与开发:基于HTML+CSS+JavaScript简单的个人博客网页制作期末作业

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

怎么让文字转换成语音?一步一步让你学会

在日常的生活中,我们经常会需要将文字转换成语音的情况,例如广告词、给文本配音等等,当然我们就简单的方法就是自己手动进行配音,但是如果没有专业的设备和配音环境,是很难配出很好的效果的,这该怎么办呢&a…

飞链云智能机器人-基于ChatGPT的有趣问答

最近ChatGPT火起来了; 可玩性很高,不亚于之前AI绘画的视觉冲击;这次ChatGPT带来的是逻辑冲击;上下文逻辑远超现有市面上其他所有的AI对话机器人; 有人用技巧训练ChatGPT,ChatGPT机器人宣言要毁灭人类&…

备战2023蓝桥国赛-传纸条

题目描述: 解析: 这道题想了我好久,一开始我是想假如只走一条路线,从(1,1)走到(m,n),这种问题该怎么解决呢?针对这种问题我是设了dp[k][i][j]表示走了k步到达(i,j)的好心程度之和的…

[附源码]JAVA毕业设计迎宾酒店管理系统录屏(系统+LW)

[附源码]JAVA毕业设计迎宾酒店管理系统录屏(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

R语言中使用多重聚合预测算法(MAPA)进行时间序列分析

最近我们被客户要求撰写关于时间序列分析的研究报告,包括一些图形和统计输出。这是一个简短的演示,可以使用该代码进行操作。使用MAPA生成预测。 > mapasimple(admissions)t1 t2 t3 t4 t5 t6 t7 t8 t9 t…

ElasticsearchRestTemplate 和ElasticsearchRepository 的使用

操作ElasticSearch的数据,有两种方式一种是 ElasticsearchRepository 接口,另一种是ElasticsearchTemplate接口 SpringData对ES的封装ElasticsearchRestTemplate类,可直接使用,此类在ElasticsearchRestTemplate基础上进行性一定程…

Kibana:使用 Maps 来显示分布式的团队

在我之前的文章 “Kibana:如何在 Maps 应用中显示图片提示” 里,我展示了如何在 Kibana 中使用图片来展示一个图片的提示。这个在很多情况下是非常有用的,比如在疫情发生期间,我可以通过点击地图上的点来查看发生疫情人员的详细情…

ADI Blackfin DSP处理器-BF533的开发详解40:图像处理专题-GrayStretch 图像的灰度拉伸(含源码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了图像的灰度拉伸,代码运行时,会通过文件系统打开工程文件根目下" …/ImageView"路径中的 t…

回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测 目录回归预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元多输入单输出回归预测写在前面效果一览基本描述模型描述程序设计参考资料写在前面 程序获取 | 机器学习/深度学习程序获取方式&#xff0…

Django学习第一天记录

1.安装Django(Windows环境) 首先需要确定系统中存在python环境,当前,本机的python环境为python 3.6.6,可以使用命令python --version进行查看。 在python环境成功搭建的基础上,我们使用命令pip install django即可进行django环境…

虚拟现实解决方案,实现 VR 数智机房

如今,虚拟现实技术作为连接虚拟世界和现实世界的桥梁,正加速各领域应用形成新场景、新模式、新业态。 图扑软件基于自研可视化引擎 HT for Web 搭建的 VR 数据中心机房,是将数据中心的运营搬到 VR 虚拟场景。以数据中心实际场景为基础&#…

Chaos Vantage这款渲染器有多强,一起来了解一下

Chaos Vantage 是最老牌渲染器之一的VRay开发公司Chaos新开发的一款实时GPU渲染引擎,以前的名字是Project Lavina,首次在Siggraph 2018上作为技术预览展示,官方定位是“在完全光线追踪环境中探索大型3D场景的工具”。 与其他实时渲染解决方案…

头戴式耳机适不适合跑步、分享几款最适合跑步的耳机

激情的运动和美妙的音乐毫无疑问是绝妙的搭配,几乎每天都驰骋在田径场上的我,一直非常关注运动耳机,也有不少朋友找我推荐运动耳机。运动耳机的选择有很多,但是极度靠谱的产品却是真的很少!如果你也不希望你在选购运动…