计算机操作系统第一章

news2024/11/23 15:00:26

操作系统引论

1.1操作系统的目标和作用

定义:操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件

目标:方便性,有效性(提高系统资源的利用率、提高系统的吞吐量),可扩充性,开放性。

1.2操作系统的作用

  1. 统一管理计算机资源:处理器资源,IO设备资源,存储器资源,文件资源;

  1. 实现了对计算机资源的抽象:IO设备管理软件提供读写接口,文件管理软件提供操作文件接;

  1. 提供了用户与计算机之间的接口: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中的相关过程,进而取得相应的服务

系统调用是通过中断机制实现的

区别于一般的过程调用:

①运行在不同的系统状态:系统调用的调用程序运行在用户态,而被调用程序运行在内核态

②因为调用和运行的系统状态不同(一个是用户态,一个是内核态),因此不允许由调用过程直接转向被调用过程,需要通过软中断机制先由用户态转为内核态,经内核分析后才能转向相应的系统调用处理子程序

③返回问题:每一次调用需要判断优先级

④嵌套调用:系统调用对于嵌套调用的深度有一定限制,但是一般的过程调用则没有

系统调用的类型:

①进程控制类系统调用

②文件操纵类系统调用

③进程通信类系统调用

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

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

相关文章

小红书达人怎么找?保姆级教程来了~

在小红书推广营销中,寻找优质的达人是最头疼的事,许多品牌往往会根据简单的小红书排名来直接进行判断认定,其实在挑选小红书达人时有许多要注意的点,接下来和小编一起根据小红书数据分析工具来筛选合适、优质的达人。 千瓜数据—…

蓝桥杯入门即劝退(二十四)重复的子字符串(被秒杀)

欢迎关注点赞评论,共同学习,共同进步! ------持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章…

浅谈MySQL主从复制

目录 1.MySQL主从复制是什么 2.MySQL主从复制的意义 3.MySQL主从复制原理 4.数据同步一致性问题 5.实现方式 1.MySQL主从复制是什么 MySQL主从复制就是指数据可以从一台MySQL的主节点复制到一个或多个从节点。 MySQL默认采用异步复制方式,这样从节点不用一直访…

【博学谷学习记录】超强总结,用心分享丨人工智能 Python基础 个人学习总结之列表排序

目录前言简述list.sort()语法返回值实例无参参数key参数reversesorted()语法返回值实例无参参数key参数reverseoperator.itemgetter功能简述实例List.sort与sored区别sorted原理:Timsort算法扩展list原理数据结构心得前言 经过一周的学习,对Python基础部…

嵌入式入门必看!调试工具安装——基于 AM64x核心板

本章节内容是为评估板串口安装USB转串口驱动程序。驱动适用于CH340、CH341等USB转串口芯片。 USB转串口驱动安装 适用安装环境:Windows 7 64bit、Windows 10 64bit。 本文测试板卡为创龙科技SOM-TL64x核心板,它是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cort…

DP(4)--区间DP

将n(1≤n≤200)堆石子绕圆形操场摆放,现要将石子有次序地合并成一堆。 规定每次只能选相邻的两堆石子合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 (1)选择一种合并石子的方案,使得做n-1次合并,得分的总…

比特数据结构与算法(第四章_下)二叉树的遍历

本章将会详细讲解二叉树遍历的四种方式,分别为前序遍历、中序遍历、后续遍历和层序遍历。在学习遍历之前,会先带大家回顾一下二叉树的基本概念。学习二叉树的基本操作前,需要先创建一颗二叉树,然后才能学习其相关的基本操作&#…

中国一直是亚马逊云科技在全球业务布局中最重要的国家之一

在走进经济筑底重启回升的2023年,我们该如何直面这场需要时间验证的修复之旅?亚马逊全球副总裁、亚马逊云科技大中华区执行董事张文翊与《经济观察报》App的“企业家说2023”栏目展开对谈,分享亚马逊云科技如何立于云端,帮助企业上…

Android ART dex2oat

一、什么是dex2oat Dex2oat (dalvik excutable file to optimized art file) ,是一个对 dex 文件进行编译优化的程序,在我们的 Android 手机中的位置是 /system/bin/dex2oat,对应的源码路径为 android/art/dex2oat/dex2oat.cc,通…

谷歌搜索技巧大全 | 谷歌高级搜索语法指令

谷歌搜索技巧是利用各种高级搜索语法或者搜索指令,让我们能够使用Google进行精确化的搜索,外贸找客户和学术文件查找都可以应用到这些搜索技巧。(大部分命令也适用百度搜索)。Google通过互联网收集数据,抓取有意义的信息,将其存储…

flask入门-4.项目实战

4. 项目实战1 1. 问答平台项目结构搭建 项目结构 config.py hostname "127.0.0.1" port 3306 username "root" password "root"database "flask_qa"# 在 app.config 中设置连接数据库的信息 SQLALCHEMY_DATABASE_URI f"…

【Redis】什么是缓存与数据库双写不一致?怎么解决?

1. 热点缓存重建 我们以热点缓存 key 重建来一步步引出什么是缓存与数据库双写不一致,及其解决办法。 1.1 什么是热点缓存重建 在实际开发中,开发人员使用 “缓存 过期时间” 的策略来实现加速数据读写和内存使用率,这种策略能满足大多数…

ECharts基础知识详细介绍

文章目录知识点ECharts 实例ECharts 基础配置组件seriesdataset用 option 描述图表titletooltiplegend 图例组件toolbox 工具栏坐标轴知识点 ECharts 实例series 与 datasetECharts 基础配置用 option 描述图表坐标系 ECharts 实例 一个网页中可以创建多个 ECharts 实例。每个…

JPA——Java.util.Date和Java.sql.Date

纵观整个项目的字段,最难搞的就是Date类型。今天我们就好好唠唠java中的两个Date类 一、Java.sql.Date 1. 构造方法 Date date new Date(System.currentTimeMillis());System.out.println(date);//2023-02-282. 常用方法: 方法作用void setTime(long…

【Java开发】JUC基础 04:Synchronized、死锁、Lock锁

1 概念介绍并发:同一个对象被多个线程同时操作📌 线程同步现实生活中,我们会遇到“同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队…

强化学习RL 04: Actor-Critic Algorithm

actor: 是policy network,通过生成动作概率分布,用来控制agent运动,类似“运动员”。critic: 是value network,用来给动作进行打分,类似“裁判”。构造这两个网络,并通过environment奖励来学习这两个网络。…

AQS抽象队列同步器

aqs 抽象队列同步器,内部存储了一个valitail修饰的status 和内部类node ,来实现对共享变量并发同步队列机制,以reentrantLock为例,lock底层实际上调用的是sync的lock,会调用cas对status的状态进行修改,来确定是否获得锁…

学习 Python 之 Pygame 开发魂斗罗(七)

学习 Python 之 Pygame 开发魂斗罗(七)继续编写魂斗罗1. 载入水中图片并添加在水中的标志2. 修改玩家类函数3. 增加河的碰撞体4. 实现玩家在河中的样子继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(六)中&#…

csgo搬砖项目详细拆解,附选品+详细操作教程

项目实操 一:项目原理 csgo这款游戏不知道大家玩过没有,如果不了解的话,那你肯定知道穿越火线这款游戏吧,都是一个类型的射击游戏。 说到csgo,就得所以一下今天项目的平台steam,它是一个游戏平台&#x…

Redis面试问题总结

1. 什么是Redis?Redis 是一个使用 C 语言写成的,开源的高性能key-value非关系缓存数据库。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。…