三、操作系统知识(3)
6.作业管理
作业:
系统为完成一个用户的计算任务、事务处理所做的工作总和。
组成:程序、数据、作业说明书(作业基本情况、作业控制、作业资源要求的描述。体现了用户的控制意图)。
状态:提交、后备、执行、完成
作业管理程序:操作系统中用来控制作业进入、执行、撤销的一组程序。
作业控制:
1.脱机控制方式:无须人工干预。用作业控制语言(JCL)编成作业说明书,联通作业一同提交给计算机系统。
2.联机控制方式:需要人工干预。操作系统提供了一组联机命令,用户通过终端输入命令将意图告诉计算机来口昂之作业的运行过程。
作业控制块:JCB。是记录与该作业有关的各种信息的登记表。是作业存在的唯一标志。用户民、作业名、状态标志……
作业后备队列:输入井中有较多的后备作业,为了便于作业调度程序调度,通常将作业控制块排成一个、多个队列。由若干个JCB组成。
作业调度:
考虑:1.与系统的整个设计目标一致;2.均衡使用系统资源;3.平衡系统、用户的要求
算法:
1.先来先服务
2.多作业优先
3.响应比高优先:R==响应时间/执行时间=1+等待时间/执行时间;作业相应时间=等候时间+执行时间。调度钱需要计算所有作业后备对列中的相应比,算法复杂,开销大。
4.优先级调度算法:优先级;或系统根据作业的紧迫度;或者照顾“I/O”繁忙的作业,充分发挥外设效率。
5.均衡调度算法:根据系统运行情况、作业本身特性对作业分类;轮流从不同类别的作业中挑选作业执行(力求均衡地使用系统的各种资源)。注重发挥系统效率+用户满意。
作业调度算法衡量指标:平均周转时间,或平均带权周转时间。
提交后立即执行,等待时间=0,则周转时间最短。
作业执行时间不能直观衡量系统的性能,带权周转时间可以。
用户界面:(用户接口,人机界面)计算机中实现用户与计算机通信的软硬件总称。
硬件:输入、输出装置
软件:用户与计算机相互通信的协议、约定、操纵命令,及其处理软件
发展:
1.控制面板式用户界面:输入:控制台开关、板键、穿孔纸带;输出:指示灯、打印机
2.字符用户界面:输入:键盘……;输出:显示器,打印机。优:灵活,屏幕开销少;缺:操作步骤繁琐,学习费时。
3.图形用户界面:字符、图形、图像、声音同计算机交互。关键技术:超文本
超文本:包括文本、图像、音频、视频……多媒体信息。最大特点:具有指向性
4.新一代用户界面:输入:语音、自然语言、手势、头部分鬃、表情、视线跟踪……;输出:二维屏幕、真实感(立体数据、听觉、嗅觉、触觉……)。关键技术:虚拟现实技术。
特征:以用户为中心,自然、高效、高宽带、非精确、无地点限制……
技术支持:多媒体、多通道(理解用户意图)、智能化
虚拟现实技术:人作为参与者,以自然的方式与计算机生成的虚拟环境进行通信。
Swapping技术
是覆盖技术的一种,此技术的引入大大提高了内存的使用率,能接纳更多的用户。它是以作业为单位的存储区覆盖,被兑换到外存的作业将在一段时间内停止运行。
7.网络与嵌入式操作系统基础知识
计算机网络=硬件+软件
操作系统是最重要的系统软件
网络操作系统:网络用户和计算机网络之间的一个接口
操作系统具备的基本功能+联网功能(支持网络体系结构、各种通信协议;提供网络互连功能;提供有效、可靠、安全的数据传送)
是整个网络的灵魂,决定了网络的功能,并由此决定了不同网络的应用领域及方向。
有三大阵营:UNIX、Windows NT、NetWare
特征:
1.硬件独立性
2.多用户支持
3.支持网络实用程序及其管理功能
4.多客户端支持
5.提供目录服务:
6.支持多种增值服务:文件服务、打印服务、通信服务、数据库服务
分类:
1.集中模式:分时操作系统+网络功能。基本单元是由一台主机和若干台终端相连。将多台主机连接起来形成网络,信息的处理和控制是集中的。
2.客户端/服务器模式:流行的网络工作模式。服务器:网络的控制中心,任务是向客户端提供以一种、多种服务,有多种类型;客户端:用于本地处理、访问服务器的站点,包含了本地处理软件和访问服务器上服务程序的软件接口。
3.对等模式:peer-to-peer。具有分布处理、分布控制的特征。各个站点是对等的,即可作为客户端去访问其他站点,又可作为服务器向其他站点提供服务;网络中既无服务处理中心,也无控制中心,即,网络的服务和控制功能分布在各个站点上。
现代操作系统已经把网络功能包含到操作系统的内核中,作为操作系统核心功能的一个组成部分。
嵌入式操作系统:
在嵌入式系统的操作系统
运行在嵌入式智能芯片环境中,对整个智能芯片以及它的操作、控制的各种部件装置等资源进行统一协调、调度、指挥、控制的系统软件。
特点:
1.微型化。由于硬件平台的局限性,在保证功能的前提下,以微型化来设计结构、功能
2.可定制。针对硬件的变化进行结构、功能上的配置,以满足不同应用需要。
3.实时性。广泛应用于需要迅速响应的场合,实时响应要求严格。
4.可靠性。对关键要害应用提供容错、防故障措施。
5.可移植性。硬件抽象层(HAL)+板级支撑包(BSP)的底层设计技术。HAL:与设备无关,屏蔽硬件平台的细节差异,向操作系统上层提供统一接口,保证了系统的可移植性;BSP:由硬件厂家提供,按给定的编程规范完成的,保证了可在行的平台上运行。
开发环境:
1.源码级可配置的系统模块设计。
2.丰富的同步原语,可选择的调度算法,可选择主存分配策略,定时器,计数器
3.多方式中断处理支持,多种异常处理选择
4.多种通讯方式支持
5.标准C语言库
6.数学运算库
7.开放式应用程序接口
8.UNXI
集成可以通过进程调用访问文件(Open、Close、Write、Read、Start……)
文件:系统中可用的任何计算机资源,一切资源的抽象表示方法
操作系统
多用户、多任务的分时操作系统最内层硬件提供基本服务,内核提供全部应用程序所需的各种服务。
文件系统:
目录结构:树形带交叉勾连的。非叶节点是目录文件,叶节点可以是目录文件,也可以是文件、特殊文件
目录:包含目录项的文件。逻辑上,每个目录项都包含一个文件名及其属性信息(文件类型、文件长度、文件主、文件许可权、最后修改时间……)
进程管理:
进程组成:控制块(PCB,常驻主存的基本进程控制块,proc+非常驻贮存的进程扩充控制块,user)、正文段(正文表text[],每个正文段占据一个表项,用来指明正文段在主存、磁盘的位置)、数据段
进程控制:进程同步、进程间通信、存储管理、进程调度,exit,kill,wait,exec……
进程调度:采用动态优先调度算法,优先数随进程的执行情况而变化。就绪程序能否占用处理机优先权取决于进程优先数,优先数越小优先权越大。
确定优先数:设置方法(进入睡眠的进程)、计算方法(进入、即将要转入用户态运行)
存储管理:
早期,“对换技术”扩充主存容量(兑换区、主存)
高版本,分页式虚拟存储机制,对换技术辅助。采用二次机会页面替换算法。
设备管理:
类别:块设备、字符设备
设备文件:有索引节点,在文件目录中占据一个节点。但文件类型与其他文件不同,是“块”,或“字符”的特殊文件。(文件:系统中可用的任何计算机资源,一切资源的抽象表示方法)
设备开关表:文件系统与设备驱动程序的接口
特点:
1.块设备与字符设备具有相似结构(控制方法、数据结构、层次结构)
2.将设备作为一个特殊文件,,并赋予一个文件名。对设备的使用类似于对文件的存取,具有同意接口
3.完善的缓冲区管理技术(“预先读”、“异步写”、“延迟写”),进一步提高系统效率
输入输出转向:shell提供,不改变应用程序本身的情况下自由地改变其数据的输入源、输出目的地。
shell:命令语言+程序设计语言。
负责命令管理命令行界面+一个编程环境。
一种编程语言。可按照命令行格式写入一个文件,权限设置为可执行,则可以像普通命令一样执行,这个文件成为“脚本”。
可以使用正则表达式。正则表达式:用来确定字符串模式的一个规则集,是对文本字符串的一种描述,能简洁、完整的刻画文本字符串的关键特性
向用户提供了许多用于简化输入的符号,shell的保留字,称为“元字符”。包括:通配符、字符串定义符、转义符、变量定义符……
shell变量:
1.用户定义变量
2.系统定义变量
3.shell定义变量
shell程序:shell过程。存放一条或多条命令的文件。
种类多,不同shell有不同的编程命令、语法。
shell命令行:一个交互式的脚本执行环境。使用脚本中的控制语句,定义变量(环境变量),定义函数,且与文件中的命令一样。
管道:“|”表示
总是连接两个命令,将左边的标准输出与右边的标准输入相连(左边命令的输出结构哦成为右边命令的输入)。
用户可以在不改动程序本身的前提下,使多个程序通过标准输入、输出设备进行数据传递。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?