计算机操作系统第一章
操作系统引论
1.1操作系统的目标和作用
定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。
目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性,开放性。
1.2操作系统的作用
统一管理计算机资源:处理器资源,IO设备资源,存储器资源,文件资源;
实现了对计算机资源的抽象:IO设备管理软件提供读写接口,文件管理软件提供操作文件接;
提供了用户与计算机之间的接口:GUI(图形用户界面),命令形式,系统调用形式。
1.3发展动力
推动OS发展的动力 提高计算机系统资源利用率 | 方便用户 | 器件不断更新换代 | 计算机体系结构不断发展 | 不断提出新的应用需求
2.1操作系统的发展过程
OS的发展历程
【1945年 人工操作方式】
【20世纪50年代 脱机 I/O 】
运作: 解决人机矛盾以及CPU与I/O之间速度不匹配的矛盾,程序和数据的输入输出都是在脱离主机的情况下完成的。
联机 I/O : 在主机直接控制下进行的 I/O。
脱机I/O的优点:减少了CPU空闲时间,提高了IO速度
【20世纪50年代中期 单道批处理系统】
运作:把一批作业以脱机IO方式输入到磁带、在系统配上监督程序,在程序控制下,作业被一个一个完成,在内存中始终只保存一道作业。
优点:提高系统资源利用率和系统吞吐量。
缺点:仍未能充分利用系统资源,造成计算机内存的浪费
【20世纪60年代中期 多道批处理系统】
运作:作业先放到外存,排成一个队列(后备队列),由作业调度程序按照一定算法从队列选择若干个作业调入队列,使它们共享CPU和系统中的各种资源
优点:资源利用率高、系统吞吐量大、平均周转时间长、无交互能力
待解决的问题:征用处理机问题、内存分配与保护、IO设备分配、文件组织与管理问题、作业管理、用户与系统的接口
【分时系统】
发展原因:满足用户对于人机交互的要求
运作:为了实现人机交互,必须放弃原批处理系统的运行方式,而采用:①作业直接进入内存,因为作业在磁盘上无法运行;②采用轮转运行,以保证每个作业都有机会运行,因此引入了时间片的概念
特征:多路性(多终端连到同一主机上)、独立性(各自终端互不干扰)、及时性(响应所需时间为1-3s)、交互性
【实时系统】
定义:OS能及时响应外部事件的请求,在规定时间内完成对事件的处理,并控制所有实时任务协调一致地运行
实时OS的类型:工业控制OS、信息查询OS、多媒体OS、嵌入式OS
实时任务的类型:周期性 / 非周期性实时任务、硬实时任务(Hard real time,HRT)、软实时任务 SRT (上述四个任务类型,都伴随截止时间)
特征:多路性(周期性对多路现场信息采集,对多个执行机构进行控制)、独立性(各自终端互不干扰)、及时性(响应所需时间为毫秒级)、交互性、可靠性
实时系统具有的两个基本特征是:及时性、可靠性
3.1操作系统的基本特性
3.1.1并发
并发(并行是同一时刻发生,并发是同一时间间隔发生):
概念:宏观上多个程序同时运行,但微观上每一时刻只有一个程序运行。我们所说的并发,指的一般是进程的并发

3.1.2共享
共享:
概念:OS的共享,指的是资源的复用:供内存中多个并发执行的进程共同使用(即限定了时间,又限制了地点)
类型:互斥共享(A访问完后B才能访问)、“同时”共享(宏观上一起用,微观上交替用)
并发和共享是多任务OS最基本的两个特征,它们互为对方存在的条件。资源的共享是以进程的并发执行为条件的;同时,若不能对资源共享进行协调,则会影响并发的速度
3.1.3虚拟
虚拟性:表现为把一个物理实体转变为若干个逻辑实体。
时分复用技术:资源在时间上进行复用,不同程序并发使用,多道程序分时使用计算机的硬件资源,提高资源的利用率。
空分复用技术:用来实现虚拟磁盘(物理磁盘虚拟为逻辑磁盘,电脑上的C盘、D盘等)、虚拟内存(在逻辑上扩大程序的存储容量)等,提高资源的利用率,提高编程效率。
3.1.4异步
在多道程序环境下,允许多个进程并发执行,但由于资源等因素的限制,使进程的执行以“停停走走”的方式运行,而且每个进程执行的情况(运行、暂停、速度、完成)也是未知的。
4.1操作系统的运行环境
操作系统的中断处理
操作系统的中断处理
中断机制的作用:为了在多道批处理系统中让用户进行交互;
中断产生:
发生中断时,CPU立马切换到管态,开展管理工作;(管态又叫特权态,系统态或核心态,是操作系统管理的程序执行时,机器所处的状态。)
发生中断后,当前运行的进程回暂停运行,由操作系统内核对中断进行处理;
对于不同的中断信号,会进行不同的处理。
中断的分类:
内中断(也叫“异常”、“例外”、“陷入”)------- 信号来源:CPU内部,与当前执行指令有关;
外中断(中断)----------信号来源:CPU外部,与当前执行指令无关。
外中断的处理过程:
每执行完一个指令后,CPU都需要检查当前是否有外部中断 信号;
如果检查到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW,程序计数器PC、各种通用寄存器)把他们存储在PCB(进程控制块中);
根据中断信号类型转入相应的中断处理程序;
恢复原进程的CPU环境并退出中断,返回原进程继续执行。
5.1操作系统的主要功能
处理机管理功能
本质:传统多道程序系统中,处理机的分配和运行以进程为基本单位,因而对处理机的管理可归结于对进程的管理。
功能:进程控制、同步、通信、调度
存储器管理功能
功能:内存分配与回收(静态、动态分配)、内存保护(①各用户程序只在自己内存运行,②不允许用户访问OS程序和数据)、地址映射、内存扩充(虚拟存储技术:请求调入功能、置换功能)
设备管理功能
功能:缓冲管理、设备分配、设备处理
文件管理功能
功能:文件存储空间管理、目录管理、文件读写管理和保护
接口管理功能
功能:OS向用户提供了“用户与OS之间的接口”,分为用户接口(联机用户接口、脱机用户接口、图形用户接口)、程序接口
6.1操作系统的结构
简单结构
模块化结构:
优点:提高OS设计的正确性、可理解性、易维护性、可适应性,加速OS开发过程
缺点:接口规定很难满足划分后,模块对于接口的实际需求;B决定必须建立在A决定的基础上,没有可靠决定顺序,容易造成决定的无序性
分层式结构:
优点:能保证正确性、易维护性、可扩展性
缺点:系统效率低
微内核结构:
概念:足够小的内核、基于客户/服务器的模式、采用策略和机制分离的原则、采用面向对象技术;
功能:进程(线程)管理、低级存储器管理、中断和陷入处理(在微内核OS中,只有很小一部分的属于机制的放入了为内核中,另外绝大部分的都放在了微内核外的各种服务器中)
优点:提高系统扩展性、可靠性、可移植性,提供了对分布式系统的支持,融入了面向对象技术。操作系统可仅通过调整策略来适应不同应用的需求
存在的问题:因为客户和服务器间又消息传递,因此相比于早期的OS,微内核OS的运行效率有所降低(内核大则效率高但占用空间也大,反之效率低但是占空间小)
外核结构:
概念:内核不提供传统OS的进程、虚拟存储器等抽象事物,而是专注于物理资源的隔离(保护)和复用,即非常小的内核负责保护系统资源,而硬件资源的管理职责则委托给应用程序。将原本属于OS内核的功能以库的形式提供给用户
7.1系统调用
系统调用
概念:使应用程序可以通过系统调用来简介调用OS中的相关过程,进而取得相应的服务
系统调用是通过中断机制实现的
区别于一般的过程调用:
①运行在不同的系统状态:系统调用的调用程序运行在用户态,而被调用程序运行在内核态
②因为调用和运行的系统状态不同(一个是用户态,一个是内核态),因此不允许由调用过程直接转向被调用过程,需要通过软中断机制先由用户态转为内核态,经内核分析后才能转向相应的系统调用处理子程序
③返回问题:每一次调用需要判断优先级
④嵌套调用:系统调用对于嵌套调用的深度有一定限制,但是一般的过程调用则没有
系统调用的类型:
①进程控制类系统调用
②文件操纵类系统调用
③进程通信类系统调用
相关文章:
计算机操作系统第一章
操作系统引论1.1操作系统的目标和作用定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性,…...
ARM LDREX/STREX指令以及独占监控器详解
一、目的Linux驱动开发中有一个特别重要的知识点必须掌握,即并发、竞态以及同步。什么是并发?多个执行单元(进程、线程、中断)同时对一个共享资源的进行访问;此处的共享资源可以是外设、内存或者软件层面的全局变量静态…...
吉林大学 程序设计基础 2022级 实验复盘 2.23
本人能力有限,发出只为帮助有需要的人。 以下为实验课的复盘,内容会有大量失真,请多多包涵。 此次实验限时一个小时,时间很紧张,很多内容可能并不准确。 1.输出有规律的字母串 输入输出如下; 输入&…...
Linux系列 常用命令(目录和文件管理)vi和vim 编辑使用,(笔记)
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.常用命令(目录和文件管理) 1.查看文件内容 2.统计…...
OpenCV入门(一)Python环境的搭建
OpenCV入门(一)Python环境的搭建 因为有点Python基础,并且Python是比较好入门的编程语言,所以,机器视觉后面打算在Python这个平台下进行。 Windows平台OpenCV的Python开发环境搭建 1、Python 的下载与安装 Python是…...
3.查找算法:顺序查找和二分查找
查找查找,是指在一些数据元素中,通过一定的方法找出与给定关键字相同的数据元素的过程。列表查找(线性表查找):从列表中查找指定元素输入:列表,待查找元素输出:元素下标(…...
攻不下dfs不参加比赛(七)
标题 为什么练dfs题目总结重点为什么练dfs 相信学过数据结构的朋友都知道dfs(深度优先搜索)是里面相当重要的一种搜索算法,可能直接说大家感受不到有条件的大家可以去看看一些算法比赛。这些比赛中每一届或多或少都会牵扯到dfs,可能提到dfs大家都知道但是我们为了避免眼高手…...
精确光度预测计算工具:AGi32 Crack
什么是AGi32? AGi32首先是一种用于精确光度预测的计算工具:一种技术工具,可以计算任何情况下的照度,协助灯具放置和瞄准,并验证是否符合任意数量的照明标准。 然而,要增强对光度学结果的理解,还…...
47个SQL性能优化技巧,看到就是赚到
1、先了解MySQL的执行过程 了解了MySQL的执行过程,我们才知道如何进行sql优化。 (1)客户端发送一条查询语句到服务器; (2)服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中的…...
汇川SV660N与基恩士 KV7500 控制器调试说明
1. 伺服相关部分配置 1.1 伺服相关版本 SV660N 试机建议使用“SV660N-Ecat_v0.09.xml”及以上设备描述文件。 SV660N 单板软件版本建议为“H0100901.4”及更高版本号。 1.2 相关参数说明 SV660N 对象字典中 60FD 的含义较 IS620N 有所更改:bit0、1、2 分别为负限位…...
图观 | ChatGTP是如何通过知识图谱回答问题的?
文/Emma Z1950年,图灵发表了具有里程碑意义的论文《计算机器与智能》(Computing Machinery and Intelligence),提出了一个关于机器人的著名判断原则——图灵测试,也被称为图灵判断,它指出如果第三者无法辨别…...
Mysql的索引
为什么写这篇文章呢~最近在梳理公司的数据库,在查看表结构的时候发现了这个 CREATE TABLE esp_5_N (ID int(11) NOT NULL AUTO_INCREMENT,pId int(11) DEFAULT NULL,EsFileId varchar(32) DEFAULT NULL,obligate1 varchar(45) DEFAULT NULL,obligate2 varchar(45) …...
计算机的发展
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…...
理解Spring中的依赖注入和控制反转
依赖注入(Dependency Injection)是一种面向对象编程的设计模式,用于解决对象之间的依赖关系。它的基本思想是将对象的创建和管理工作交给容器来完成,而不是在应用程序中手动创建和管理对象,从而达到松耦合、易维护、易…...
XXL-JOB
XXL-JOB介绍 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 官网:https://www.xuxueli.com/xxl-job/ 文档:分布式任务调度…...
「牛客网C」初学者入门训练BC134,BC136
🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️🔥专栏系列:线性代数,C初学者入门训练 🔥座右铭:“不要等到什么都没有了,才下定决心去做” 🚀🚀🚀大家觉不错…...
华为OD机试题【翻转单词顺序】用 C++ 进行编码 (2023.Q1)
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明翻转单…...
4.Spring【Java面试第三季】
4.Spring【Java面试第三季】前言推荐4.Spring27_Aop的题目说明要求Spring的AOP顺序AOP常用注解面试题28_spring4下的aop测试案例业务类新建一个切面类MyAspect并为切面类新增两个注解:spring4springboot1.5.9pom测试类29_spring4下的aop测试结果aop正常顺序异常顺序…...
ZLibrary使用说明-Zlirbrary
ZLibrary使用说明如果您是一位书虫,那么ZLibrary是一个值得一试的网站。该网站提供了大量的免费电子书籍,涵盖了各种不同的主题和类别。下面是一些有关如何使用ZLibrary的详细说明:第1步:访问ZLibrary网站要使用ZLibraryÿ…...
TwinCAT3第三方伺服电机——汇川SV660N使用
目录 一、第三方伺服在TC3中配置和使用 二、xml文件拷贝 编辑 三、IO中扫描伺服 四、工程测试 五、汇川伺服参数设置说明 一、第三方伺服在TC3中配置和使用 在倍福控制系统中使用第三方伺服可以参见本人另一篇博客,有详细教程说明。本文仅仅对SV660N伺服设置…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
【WebSocket】SpringBoot项目中使用WebSocket
1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖,添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...
