操作系统概述(3)

news2025/4/13 14:31:01

批处理系统

1.单道批处理系统

  • 单道批处理系统是成批地处理作用,并且始终只有一道作业在内存中的系统。
  • 优点:提高系统资源的利用率和系统吞吐量。
  • 缺点:系统中的资源得不到充分利用。

2.多道批处理系统

  • 引入多道程序设计技术,是为了进一步提高系统资源的利用率和系统吞吐量。
  • 优点:系统资源利用率高,系统吞吐量大。
  • 缺点:平均周转时间长,无交互能力。

分时系统

  • 分时系统是指在一台主机上连续若干个配有显示器和键盘的终端,并由此组成的系统。
  • 分时系统允许若干个用户同时通自己的终端以交互方式使用主机,共享主机中的资源。
分时系统的特性:

1.多路性系统按分时原则为每个用户服务,宏观上若干个用户是同时工作的,微观上每个作业轮流执行一个时间片。

2.独立性:每个用户都是独立操作的,互不干扰。

3.及时性:用户的请求能在很短的时间内获得响应。

4.交互性:用户可以通过自己的终端与系统进行交互。

实时系统

  • 实时系统是指能够及时响应外部事件的请求,在规定时间内完成相应的处理,并且控制所有实时任务协调一致地运行的系统。
  • 实时系统的特征是将时间作为关键参数,具有多路性、独立性、及时性、交互性、可靠性。
  • 常见的实时系统有工业控制系统、武器控制系统、信息查询系统、多媒体系统、嵌入式系统。

微机操作系统

  • 微机操作系统是指配置在微型机上的操作系统。分为单用户单任务操作系统、单用户多任务操作系统、多用户多任务操作系统。

网络操作系统

  • 网络操作系统是指在计算机网络环境下,管理和控制网络资源,实现数据通信,共享网络资源,为用户提供与网络资源之间接口的一组软件和规程的集合。
  • 由于现代操作系统通常具有上网功能,所以如今一般不再特指某个操作系统为网络操作系统。

微内核结构的操作系统

微内核操作系统的主要特点:

  1. 足够小的内核
  2. 基于客户/服务器模式
  3. 利用“机制与策略分离”的原理,将控制放在操作系统的微内核中
  4. 采用面向对象技术

优点 :可扩展性高、可靠性高、可移植性强、支持分布式系统、采用面向对象技术、提高了系统性能、减少了开发系统的开销。

操作系统的基本特征

1.并发性:并发性是指两个或多个时间在同一时间间隔内发生。

2.共享性:共享性是指内存中并发执行的若干个进程共享系统中的各种系统。

3.虚拟性:虚拟是将一个物理实体变为若干个逻辑上的对应物。

4.异步性:异步性是指在多道程序环境下,每个进程何时进行、何时暂停未知,并以不可预知的速度向前推进。

  • 并发性和共享性是多用户多任务操作系统的两个基本特征。
  • 因为操作系统具有并发性,所以能极大地提高系统资源利用率并增大系统的吞吐量。
并发性和并行性的区别
  • 并发性:两个或多个事件在同一时间间隔发生。
  • 并行性:两个或多个事件在同一时刻发生。

操作系统的主要功能

操作系统的主要功能有:

处理机管理功能存储器管理功能设备管理功能文件管理功能操作系统与用户之间的接口现代操作系统的新功能

  1.  处理机管理 对进程进行管理、包括进程控制、进程同步、进程通信、调度(包括作业调度、进程调度等)。对于引入了线程的操作系统,处理机管理也包含对线程进行管理。
  2. 存储器管理:包括内存分配与回收、内存保护、地址映射、内存扩充等。存储器管理功能可以为多道程序提供良好的运行环境,提高存储器的利用率,减少内存碎片,便于用户使用,从逻辑上扩充内存。
  3. 设备管理:包括缓冲管理、设备分配、设备处理、虚拟设备等。设备管理功能可以完成用户进程的I/O请求,提高I/O速度,提高CPU与I/O设备的利用率,让用户更方便地使用I/O设备。
  4. 文件管理:包括文件存储空间管理、目录管理、文件读/写管理、文件共享、文件保护等。文件管理功能可以方便用户管理用户文件和系统文件,并提供了有效的存取控制功能,保证了文件的安全性。
  5. 操作系统与用户之间的接口:操作系统向用户提供了“操作系统与用户之间的接口”,接口分为用户接口和程序接口两种类型。操作系统由于用户之间的接口便于用户使用操作子系统。

裸机应用编程

1.什么是裸机?

  • 无软件的计算机硬件系统。

2.什么是裸机应用编程?

  • 编写语言:直接使用CPU指令集。
  • 开发环境:基于硬件电路上的硬件接口。
3.所有台式机,CPU一样吗?
  • 台式计算机和手机的CPU就不同。
  • 即使家用电器里面都有不同的CPU。
4.不同类型CPU,指令集一样吗?
  • 指令集一样,就不能叫不同类型CPU,即使同类型,也会有变化。
5.为什么计算机CPU不做成一样?
  • 技术发展的差异:半导体技术水平导致制造过程的差异。
  • 应用发展的需求:成本控制和电路设计,例如家用电器、早期的手机。

裸机上机器语言编程

  • 裸机编程最早基于指令集结构(Instruction Set Architecture, ISA)编写应用程序,即机器语言源程序
  • 提问:上面两种机器语言代码为什么不同,有哪些不同?这样的编程你有什么感觉?
  • x-86指令长度可变,而MIPS定长,数据好像一样,但字节顺序颠倒。能不能让编程更轻松?
两种机器语言代码不同的原因及不同点
  1. 根本原因:X86 与 MIPS 属于不同的指令集架构(ISA),ISA 定义了指令格式、操作码、寄存器使用等底层规则,导致机器语言代码的编码规则不同。

  2. 具体不同点

    • 指令长度:X86 指令长度可变(如不同指令码字节数不同),MIPS 指令定长(通常为 4 字节)。
    • 字节顺序:存在大端 / 小端存储差异,如数据相同但字节顺序颠倒。
    • 指令编码规则:两者操作码、寻址方式的机器码表示不同,反映了各自架构的硬件设计逻辑。
  3. 编程感受:直接使用机器语言编程繁琐易错,需记忆复杂的二进制 / 十六进制编码,开发效率低,代码可读性、可维护性差。

让编程更轻松的方法

可通过抽象层简化编程:

  • 使用汇编语言:用助记符(如 ADD、MOV)替代机器码,降低记忆成本,再通过汇编器转换为机器语言。
  • 高级编程语言:利用 C、Python 等高级语言,通过编译器 / 解释器将代码转换为机器语言,程序员无需关注底层细节,聚焦逻辑实现,提升开发效率。

 裸机上汇编语言编程

  • 裸机编程基于汇编语言格式编写应用程序,即汇编语言源程序代码,即汇编程序自动转换汇编指令成机器指令代码
  • 通过机器语言与汇编语言代码相比,其语言符号易于理解指令功能,而且汇编数据以10进制和字符为主,而机器语言以16进制编码为主,CPU不一样指令也不一样,可能字节顺序不同。
  • 能否通过C语言源程序追踪发现逻辑编程中的指令处理的信息?
借助 C 语言源程序追踪逻辑编程中的指令处理信息:
  1. 编译生成汇编代码:使用编译工具(如gcc -S)将 C 语言源程序编译为汇编语言代码。汇编代码中会直接呈现底层指令(如movaddjmp等),清晰展示指令处理逻辑,包括寄存器操作、内存访问、运算指令等裸机编程层面的指令处理细节。
  2. 反汇编可执行文件:将 C 语言编译生成的可执行文件(机器码),通过反汇编工具(如objdump -d)还原为汇编代码。反汇编结果会暴露机器码对应的指令处理信息,包括指令类型、操作数、执行顺序等,从而追踪到底层指令处理逻辑。

尽管 C 语言源程序本身未直接书写指令,但通过编译生成的汇编代码或反汇编可执行文件,能够间接追踪到指令处理的具体信息,建立高级语言与底层指令处理的关联。

裸机编程特性
  1. 如果换 CPU,CPU 指令集变了,基于 CPU 指令集的程序还能用?
    通常无法直接使用。程序执行依赖特定 CPU 指令集的操作支持,指令集变更后,原程序失去运行基础。

  2. 如果接口硬件(类型、规模)扩充,包含原硬件接口程序能选择使用?
    若扩充的硬件接口仍保留原接口,原程序可选择继续使用;若完全替换原接口,程序需重新适配新接口才能用。

  3. 如果硬件设计未变但应用功能添加,以前的程序还可选择使用?
    若原程序不依赖新增功能,可继续使用;若程序逻辑与新增功能有关联或依赖,则需修改调整后才能用。

  4. 如果基于 CPU 指令集编写的程序,在哪调试?怎么调试?CPU 变了怎么办?
    需在专门的开发板或开发设备上调试。若 CPU 变更,需更换适配新 CPU 的开发板 / 设备,重新搭建调试环境。

  5. 程序设计要考虑哪些?
    需考虑:满足应用业务功能需求;CPU 指令集提供的操作能力;CPU 寄存器数量限制;硬件中断支持机制;内存单元布局;外部设备接口类型、规模及操作逻辑。

 操作系统上编程:算法语言编程

  • 软件层抽象隐藏硬件接口,算法语言语句抽象为虚拟CPU指令,不与具体的CPU指令集、内存和外部硬件接口对应。
  • 算法语言源程序代码通过一种自动化的工具,即编译程序翻译成为针对一种CPU可识别的CPU指令集的汇编语言符号,再转换为二进制编码的机器语言指令格式。

OS 上应用编程问题

  1. 算法设计

    • 无需重点关注编码、类型、字节顺序、运算溢出及精度等限制,也可不细究运算和存贮访问次数对程序效率的影响。
    • 依据问题特性选择迭代或递归算法,部分算法可能突破 OS 极限。
  2. 语句组织

    • 忽略命名唯一性(全局 / 局部变量、函数)、语句编译或解释后机器指令的差异对程序运行效率的影响。
    • 未注意相同运算因参与类型不同,可能导致机器指令实现功能错误。
  3. 运行访问

    • 变量按类型和大小分配字节,地址连续编址,需先分配后访问,避免使用失效、超量或跨区地址,防止污染函数地址或返回地址,引发程序失控、效率低等问题。
    • 中断处理可能插入语句(机器指令组)中,引发主程序运行状态保护问题。

 

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

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

相关文章

SolidWorks2025三维计算机辅助设计(3D CAD)软件超详细图文安装教程(2025最新版保姆级教程)

目录 前言 一、SolidWorks下载 二、SolidWorks安装 三、启动SolidWorks 前言 SolidWorks 是一款由法国达索系统(Dassault Systmes)公司开发的三维计算机辅助设计(3D CAD)软件,广泛用于机械设计、工程仿真和产品开…

JBDC Java数据库连接(1)

目录 JDBC概述 定义 JDBC API 实例 JDBC搭建 建立与数据库连接: 形式: 实例 获得Satement执行sql语句 Satement中的方法: 实例 实例 JDBC概述 定义 JDBC(Java DataBase Connectivity)java数据库连接是一种用于执行SQL…

git rebase复杂场景验证

经常面临复杂的分支管理,这里对几种场景的行为做一些验证。 结论总结 git rebase br_name:等价与新建br_name分支,然后找到当前分支与br_name分支的分叉点。然后把分叉点以后的提交(当前分支)一个一个的cherry-pick过…

从搜索丝滑过渡到动态规划的学习指南

搜索&动态规划 前言砝码称重满分代码及思路solution 1(动态规划)solution 2(BFS) 跳跃满分代码及思路solution 1(动态规划)solution 2 (BFS) 积木画满分代码及思路动态规划思路讲解solution 前言 本文主要是通过一些竞赛真题…

(一)栈结构、队列结构

01-线性结构-数组-栈结构 线性结构(Linear List)是由n(n>0)个数据元素(结点) a[0], a[1], a[2], a[3],...,a[n-1]组成的有限序列 数组 通常数组的内存是连续的,所以在知道数组下标的情况下,访问效率是…

MySQL基础 [五] - 表的增删查改

目录 Create(insert) Retrieve(select) where条件 ​编辑 NULL的查询 结果排序(order by) 筛选分页结果 (limit) Update Delete 删除表 截断表(truncate) 插入查询结果(insertselect&…

4.7学习总结 可变参数+集合工具类Collections+不可变集合

可变参数: 示例: public class test {public static void main(String[] args) {int sumgetSum(1,2,3,4,5,6,7,8,9,10);System.out.println(sum);}public static int getSum(int...arr){int sum0;for(int i:arr){sumi;}return sum;} } 细节&#xff1a…

OpenGL学习笔记(简介、三角形、着色器、纹理、坐标系统、摄像机)

目录 简介核心模式与立即渲染模式状态机对象GLFW和GLAD Hello OpenGLTriangle 三角形顶点缓冲对象 VBO顶点数组对象 VAO元素缓冲对象 EBO/ 索引缓冲对象 IEO 着色器GLSL数据类型输入输出Uniform 纹理纹理过滤Mipmap 多级渐远纹理实际使用方式纹理单元 坐标系统裁剪空间 摄像机自…

vmware虚拟机上Ubuntu或者其他系统无法联网的解决方法

一、检查虚拟机是否开启了网络服务 打开方式:控制面板->-管理工具--->服务 查找 VMware DHCP Service 和VMware NAT Service ,确保这两个服务已经启动。如下图,没有启动就点击启动。 二、设置网络类型 我们一般使用前两种多一些&…

OpenVLA-OFT——微调VLA时加快推理的三大关键设计:支持动作分块的并行解码、连续动作表示以及L1回归(含输入灵活化及对指令遵循的加强)

前言 25年3.26日,这是一个值得纪念的日子,这一天,我司「七月在线」的定位正式升级为了:具身智能的场景落地与定制开发商 ,后续则从定制开发 逐步过渡到 标准产品化 比如25年q2起,在定制开发之外&#xff0…

LabVIEW 油井动液面在线监测系统​

项目背景 传统油井动液面测量依赖人工现场操作,面临成本高、效率低、安全风险大等问题。尤其在偏远地区或复杂工况下,测量准确性与时效性难以保障。本系统通过LabVIEW虚拟仪器技术实现硬件与软件深度融合,为油田智能化转型提供实时连续监测解…

泛微ECOLOGY9 解决文档中打开发票类PDF文件无内容的配置方法

解决文档中打开发票类PDF文件无内容的配置方法 情况如下: 如果OA文档中打开的PDF文件如下图这样空白的,那么可以试试下面的方法进行解决。 解决方法: 在OA安装目录中找到 ecology/WEB-INF/prop/docpreview.properties 配置文件&#xff…

大模型RAG项目实战-知识库问答助手v1版

安装 Ollama 根据官网指导,安装对应版本即可。 下载安装指导文档: handy-ollama/docs/C1/1. Ollama 介绍.md at main datawhalechina/handy-ollama 注意:在 Windows 下安装 Ollama 后,强烈建议通过配置环境变量来修改模型存储…

统计子矩阵

1.统计子矩阵 - 蓝桥云课 统计子矩阵 问题描述 给定一个 NM 的矩阵 A,请你统计有多少个子矩阵(最小 11,最大 NM)满足子矩阵中所有数的和不超过给定的整数 K? 输入格式 第一行包含三个整数 N,M 和 K。 …

C++第1讲:基础语法;通讯录管理系统

黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 对应的笔记: https://github.com/AccumulateMore/CPlusPlus 标签: C&C | welcome to here 一、C初识 1.1.注释 1.2.变量 1.3.常量:记录程序中不可更改的数据 1.4.关…

Python高阶函数-filter

1. 基本概念 filter() 是Python内置的高阶函数,用于过滤序列中的元素。它接收一个函数和一个可迭代对象作为参数,返回一个迭代器,包含使函数返回True的所有元素。 filter(function, iterable)2. 工作原理 惰性计算:filter对象是…

拍摄的婚庆视频有些DAT的视频文件打不开怎么办

3-12 现在的婚庆公司大多提供结婚的拍摄服务,或者有一些第三方公司做这方面业务,对于视频拍摄来说,有时候会遇到这样一种问题,就是拍摄下来的视频文件,然后会有一两个视频文件是损坏的,播放不了&#xff0…

图灵逆向——题一-动态数据采集

目录列表 过程分析代码实现 过程分析 第一题比较简单,直接抓包即可,没有任何反爬(好像头都不用加。。。) 代码实现 答案代码如下: """ -*- coding: utf-8 -*- File : .py author : 鲨鱼爱兜兜 T…

【新人系列】Golang 入门(十二):指针和结构体 - 上

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12898955.html 📣 专栏定位:为 0 基础刚入门 Golang 的小伙伴提供详细的讲解,也欢迎大佬们…

Day20 -实例:红蓝队优秀集成式信息打点工具的配置使用

一、自动化-企业查询 ----ENScan 原理:集成企查查、爱企查、chinaz等,剑指hw/src。 1)首次使用先创建config文件 确认一下生成了 2)配置cookie 各个平台不一样,根据github作者的教程来【放入github收藏夹了】 我这…