计算机操作系统核心组件

我是荔园微风,作为一名在IT界整整25年的老兵,今天给大家讲讲操作系统。

操作系统核心组件

用户借助于一个或多个应用程序与操作系统进行交互,常常是通过一个称为shell的特殊应用程序进行的,shell也叫作命令解释器。105今天的大多数shell,其实现或者是基于文本的接口,使用户能够从键盘发送命令;或者是GUI,允许用户单击和拖放图标,以便向操作系统请求服务(例如,打开一个应用程序)。

例如,微软公司的Windows XP提供了一个GUI,用户可以通过此GUI发送命令,但用户也可以采用另一种方法,打开一个接受输入命令的命令提示窗口。

包含操作系统核心组件的软件称为内核。典型的操作系统核心组件包括:

进程调度程序(process scheduler),它确定什么时候在处理器上执行进程以及执行多长时间。

内存管理程序(memory manager),它确定什么时候将内存分配给进程以及如何分配,同时也确定当主存储器变满时该怎么办。

I/O管理程序(I/O manager),分别为来自硬件设备或到硬件设备的请求提供输入和输出服务。

进程间通信(IPC)管理程序(interprocess communication manager),它允许进程之间互相通信。

文件系统管理程序(file system manager),它将存储设备上赋予名称的数据集组织起来,并为访问这些设备上的数据提供接口。

几乎所有的现代操作系统都支持多道程序设计环境,在这种环境中,多个应用程序可以同时执行。操作系统最基本的职责之一就是确定哪个处理器执行进程以及进程执行多长时间。

程序可以包含若干元素,这些元素共享数据,且可以同时执行。例如,Web浏览器可以包含若干单独的组件,分别用来读取Web页面的HTML,检索页面的媒体(例如,图像、文本和视频),在浏览器窗口中显示页面。这种程序组件称为线程(thread),它们独立地执行,但在公共内存空间中完成它们的任务。

一般情况下,许多进程竞争使用处理器。进程调度程序可以根据若干标准做出其决策,例如,可以根据进程的重要性、估算的进程运行时间或者它已经为获得处理器等待了多长时间等标准。

内存管理程序为操作系统和为进程分配内存。为了确保进程不妨碍操作系统和确保进程之间不互相干扰,内存管理程序阻止还没有为其分配内存的每一个进程访问内存。当今几乎所有的操作系统都支持虚拟内存。

操作系统的另一个核心功能是管理计算机的输入/输出(I/O)设备。输入设备包括键盘、鼠标、麦克风和扫描仪等,输出设备包括显示器、打印机和扬声器等。存储设备(例如,硬盘、可擦写光盘和磁带)和网卡既起着输入设备的作用,也起着输出设备的作用。当一个进程期望访问一个I/O设备时,它必须向操作系统发出系统调用。随后由设备驱动程序(devicedriver)来处理此系统调用,设备驱动程序是一个直接与硬件交互的软件组件,它常常包含设备专用的命令,以及用来完成请求的输入/输出操作的一些其他指令。

大多数计算机系统能够永久性地存储数据,即计算机关机之后数据仍能存留。因为相对来说主存储器较小,且计算机关机时主存储器中的数据会丢失,所以使用永久性的辅助存储设备,最常用的就是硬盘。当一个进程请求访问磁盘设备上的信息时,就发生了磁盘I/O,这是最常见的I/O 形式之一。

但是,辅助存储器比处理器和主存储器慢得多。操作系统的磁盘调度程序(diskscheduler)组件负责对磁盘I/O 请求重新排序,以便获得最佳性能,使进程等待磁盘I/O的时间最小。独立磁盘冗余阵列(Redundant Array of Independent Disk,RAID)系统通过一次使用多个磁盘为I/O请求提供服务,试图减少进程等待磁盘I/O的时间。

操作系统使用文件系统来组织并有效地访问存放在存储设备上的指定数据集,这些数据集称为文件。

进程(或线程)经常是互相协作来完成一个共同的目标,因此,许多操作系统都提供了进程间通信(IPC)和同步机制,以便简化这种并发程序设计。进程间通信使进程借助于进程(和线程)之间发送的消息进行通信,通过使用同步机制所提供的结构,可以确保进程(和线程)合适地共享数据。

操作系统目的

用户一定期望操作系统具有某些特性,例如:

效率(efficiency)

健壮性(robustness)

可伸缩性(scalability)

可扩展性(extensibility)

可移植性(portability)

安全性(security)

交互性(interactivity)

易使用性(usability)

高效的操作系统(efficient operating system)具有高吞吐量(throughput)和低平均周转时间。吞吐量是指在一定时限内处理器能够完成的工作量。由前述可知,操作系统的一个作用就是为多个应用提供服务,效率高的操作系统提供这些服务所花费的时间较短(请看下面“操作系统思想:性能”)。

健壮的操作系统(robust operating system)具有容错功能和可靠性,这样的系统不会由于单独的应用程序或硬件错误而发生故障,即使发生故障,也会很适度(即将工作损失减到最小,阻止损坏系统硬件)。这样一个操作系统将向每一个应用提供服务,除非它所依赖的硬件发生故障。

可伸缩的操作系统(scalable operating system)能够使用添加的资源,如果一个操作系统不是可伸缩的,那么它们很快就无法充分地利用补充的资源。可伸缩操作系统能够容易地调整其多道程序设计的道数。对多处理机系统来说,可伸缩性是特别重要的一个属性。如果向系统中添加更多的处理器,理想情况下,处理能力应该与进程数量成比例地增加,虽然实际上这种情况并不会发生。

可扩展的操作系统(extensible operating system)能很好地适应新技术,并提供对操作系统进行扩展的能力,以便完成原先设计时所不能完成的任务。

可移植的操作系统(portable operating system)设计时要使它能够运行于许多种硬件配置上。应用程序的可移植性也很重要,因为开发应用程序很昂贵,所以同样的应用程序应该运行于各种硬件配置中,这样就可以减少开发成本。要达到这种可移植性,操作系统起着至关重要的作用。

安全的操作系统(secure operating system)可以阻止用户和软件未经授权而访问服务和资源。保护(protection)指的是实现系统安全策略的一种机制。

交互式操作系统(interactive operating system)允许应用程序快速响应用户动作或者事件。

易使用的操作系统(usable operating system)有这样一种潜在的可能性,可以服务于相当大的用户群。这些操作系统一般都提供易于使用的用户界面,例如Linux、Windows XP和MacOSX等都是具有易使用特性的操作系统,因为它们每一种操作系统都支持大量的应用程序集,并提供标准的用户界面。许多实验用的和理论研究用的操作系统并不支持大量的应用程序集,或提供友好的用户界面,因此,就不能认为这些操作系统是易使用的操作系统。

操作系统思想:

性能

操作系统最重要的目标之一就是尽量使系统性能最优。在日常生活中,我们都会接触到性能,例如,我们测量汽车的汽油里程,我们记下各种速度记录,教授给学生评定成绩,雇员接受老板的绩效评估,公司总裁的业绩由公司的利润来衡量等。

高性能是操作系统成功必不可少的条件。但是,性能到底高不高,常常要看由谁来评判——有多种方法可以对操作系统性能进行分类。例如,如果是批处理系统,则吞吐量就是一个很重要的测量标准;如果是交互式分时系统,则快速响应显得更为重要。

有许多提高性能所采用的技术。例如,将处理器时间分配给进程,以提高按照交互性和吞吐量来衡量的系统性能。将内存分配给进程,以减少进程的执行时间。着重介绍通过对I/O请求重新排序来提高磁盘性能。根据若干重要的性能标准对系统进行评估。

作者简介:荔园微风,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

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

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

相关文章

Postgresql源码(130)ExecInterpExpr转换为IR的流程

相关 《Postgresql源码(127)投影ExecProject的表达式执行分析》 《Postgresql源码(128)深入分析JIT中的函数内联llvm_inline》 《Postgresql源码(129)JIT函数中如何使用PG的类型llvmjit_types》 表达式计算…

Java设计模式 _行为型模式_迭代器模式

一、迭代器模式 1、迭代器模式 迭代器模式(Iterator Pattern)是一种行为型设计模式,用于顺序访问集合对象的元素,不需要关心集合对象的底层表示。如:java中的Iterator接口就是这个工作原理。 2、实现思路 &#xff0…

tomcat jdbc连接池的默认配置配置方案

MySQL 5.0 以后针对超长时间数据库连接做了一个处理,即一个数据库连接在无任何操作情况下过了 8 个小时后(MySQL 服务器默认的超时时间是 8 小时),MySQL 会自动把这个连接关闭。在数据库连接池中的 connections 如果空闲超过 8 小时,MySQL 将…

国家自然博物馆“云端自然”线上虚拟展厅是如何搭建的?

国家级综合性自然博物馆国家自然博物馆,联手积木易搭打造“云端自然”线上虚拟展览,形成一个集参观游览、科普教育为一体的线上虚拟数字博物馆平台,让数千以至数万年的古生物,栩栩如生地呈现在我们面前。 通过数字化的展示手段&am…

在做题中学习(61):连续数组

525. 连续数组 - 力扣(LeetCode) 思路:前缀和 哈希表 转化:将 0 ——> -1 转变为:找到和为0的最长子数组 细节: 1.哈希表存什么 前缀和 , 长度 2.什么时候存入哈希表 先处理前一个&…

怎么用二维码看excel表格?生成文件二维码的制作技巧

Excel表格怎么放到二维码中,让其他人通过扫码查看数据呢?现在文件放入二维码中展示在很多的场景中都有应用,比如通知、数据、作品、报告等类型的内容都可以通过扫码的方式在手机上展现,那么如何将文件生成二维码呢? 文…

DVWA登录页面空白问题解决

问题: 创建完成后打开登录页面,发现打不开,一片空白 解决: php版本不对,更换版本即可

Rust Tarui 中的 Scrcpy 客户端,旨在提供控制安卓设备的鼠标和按键映射,类似于游戏模拟器。

Scrcpy-mask 为了实现电脑控制安卓设备,本人使用 Tarui Vue 3 Rust 开发了一款跨平台桌面客户端。该客户端能够提供可视化的鼠标和键盘按键映射配置。通过按键映射实现了实现类似安卓模拟器的多点触控操作,具有毫秒级响应速度。该工具可广泛用于电脑控…

YashanDB与慧点科技完成兼容互认证

近日,深圳计算科学研究院崖山数据库系统YashanDB与慧点科技顺利完成兼容性互认证。经严格测试,双方产品完全兼容,稳定运行,共同支撑政府、企业、金融等办公应用场景下的数字化转型升级,为企业的信息技术应用创新提供坚…

石油化工巡检机器人:应对挑战的创新力量

在石油化工领域,安全始终是高悬的达摩克利斯之剑。人工巡检面临诸多痛点,如高危环境对人身安全的巨大威胁,复杂工况下难以做到全面细致监测,对有害气体检测存在滞后性,还有恶劣天气对巡检工作的严重干扰。而这些痛点&a…

绕过最新版bilibili app反frida机制

问题说明 截止到2024年5月1日,B站最新版的安卓APP(7.76.0)有反Frida机制,不管是spawn还是attach,都无法注入frida,如下图所示。本文介绍一下如何绕过它 方法 定位检测点 检测Frida的机制一般在Native层实…

GS5812G 21V、2A同步降压DC/DC转换器芯片IC

一般描述 该GS5812G是一个同步降压DC/DC转换器与快速恒定的时间(FCOT)模式控制。该器件提供4. 5V至21V的输入电压范围和2A连续负载电流能力。它是恒定时间脉宽调制(PWM)控制器,支持 FCOT模式控制。工作频率取决于输入和输出电压条件。 该GS5812G故障…

ARM-2

c语言实现三盏灯的控制 #ifndef __LED_H__ #define __LED_H__typedef struct {volatile unsigned int MODER;volatile unsigned int OTYPER;volatile unsigned int OSPEEDER;volatile unsigned int PUPDR;volatile unsigned int IDR;volatile unsigned int ODR;volatile unsig…

顶顶通实时质检系统-黑名单拦截功能配置流程

文章目录 前言联系我们配置流程一、黑名单导入二、白名单导入三、外部黑名单四、靓号规则五、创建拦截规则六、拦截条件七、功能配置 拦截记录与统计拦截记录拦截统计 前言 上篇文章讲解了顶顶通实时质检系统黑名单的功能介绍,本篇文章主要讲解顶顶通黑名单拦截功能…

docker 安装 SonarQube

文章目录 docker 安装 SonarQube一、修改句柄二、创建挂载文件夹三、拉取镜像四、修改 PG 库4.1、创建用户4.2、创建库 五、启动和挂载六、访问七、安装插件 docker 安装 SonarQube 版本:8.9 对 JDK 8 最大支持为 8.9 版本 一、修改句柄 #修改文件句柄数量&#…

智能合约语言(eDSL)—— 并行化方案 2

这个并行算法最初其实是在aptos上实现的,aptos上使用的是move虚拟机,后来我把它移植到我们链上了,但是wasm虚拟机。还是费了不少事情。 目前evm并行也比较火,像monad,sei等。经过调研发现,其实evm的并行&am…

Discourse 使用 DiscourseConnect 调用接口 admin/users/sync_sso 404 错误

在对用户数据通过 SSO 同步的时候,调用提示 404 错误。 我们使用的是 Java 的代码。 2024-05-23_16-34-421340802 70.3 KB 如上图,返回显示的代码为 404。 问题原因 出现上面错误的原因是安装的 Discourse 实例的 discourse connect 没有启用。 2024-…

【Unity2D:C#Script】实现角色射击功能

一、创建子弹预制体 1. 创建子弹预制体 2. 调整图片大小、层级 二、为子弹添加碰撞体积 1. 添加Box Collider 2D、Rigidbody 2D组件 2. 锁定z轴 三、编辑敌人脚本 注:在以下代码中,只显示本章节新增的代码,省略原有的代码 1. 为敌人添加生…

力扣刷题---返回word中所有不重复的单词

当需要从一个数据集合中去除重复元素时,set是一个很好的选择。由于其不允许存储重复的元素,因此可以很容易地实现去重功能。这在处理原始数据或进行数据分析时特别有用。 题目: 给定一个字符串数组 words,请返回一个由 words 中所…

chrome125.0.6422.60驱动包下载

百度网盘地址:https://pan.baidu.com/s/1DAr_O58GQ6m4sk_QePZscA?pwd=5t0j 提取码:5t0j Chrome驱动包(ChromeDriver)是一个用于支持自动化测试的工具,它提供了对Google Chrome浏览器的控制,使您可以编写和运行自动化脚本来测试网站。这个驱动程序是由Selenium项目开…