原文链接
文章目录:
1.熟悉的操作系统举例
2.操作系统的层次结构
3.操作系统的概念
4.操作系统的功能和目标
(1)作为计算机系统资源的管理者
1️⃣处理器(CPU)管理
2️⃣存储器管理
3️⃣文件管理
4️⃣设备管理
(2)作为用户与计算机硬件系统之间的接口
1️⃣命令接口
2️⃣程序接口
(3)作为扩充机器(虚拟机)
1.熟悉的操作系统举例
2.操作系统的层次结构
3.操作系统的概念
- 是系统最基本最核心的软件,属于系统软件
- 控制和管理整个计算机的硬件和软件资源
- 合理的组织、调度计算机的工作与资源的分配
- 为用户和其它软件提供方便的接口和环境
4.操作系统的功能和目标
先放一张思维导图,大致知道操作系统的具体功能和目标,然后再一一展开叙述。
用一个直观的例子来理解上述图中操作系统的功能:
我们假设:用户是雇主,操作系统是工人(用来操作机器),计算机是机器(由处理机(CPU)、存储器、设备、文件几个部件构成)
工人有熟练的技能去控制和协调各个部件的工作,这就是操作系统对资源的管理
同时,工人必须接受雇主的命令,这就是“接口”
有了工人,机器就能发挥更大的作用,因此工人就成了“扩充机器”
工人操作机器、机器有了更大的作用比如GUI界面,于是工人便成了扩充机器,去扩充GUI界面等功能
(1)作为计算机系统资源的管理者
管理软硬件资源、合理的组织、调度计算机的工作与资源的分配
1️⃣处理器(CPU)管理
在多道程序环境下,cpu的分配和运行都以进程(或线程)为基本单位,因此对cpu的管理可理解为对进程的管理。进程管理的主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等。附上一张图理解对进程的管理。
2️⃣存储器管理
为多道程序的运行提供良好的环境,方便用户使用及提高内存的利用率,主要包括内存分配与回收、地址映射、内存保护与共享和内存扩充等功能。
3️⃣文件管理
计算机中所有的信息都是以文件的形式存在的,操作系统中负责文件的管理的部分称为文件系统,文件管理包括文件存储空间的管理、目录管理及文件读写管理和保护等。
4️⃣设备管理
设备管理的主要任务是完成用户的I/O请求,方便用户使用各种设备,并提高设备的利用率,主要包括缓存管理、设备分配、设备处理和虚拟设备等功能。
以上4种管理功能都由“工人”负责,“雇主”无序关注。
(2)作为用户与计算机硬件系统之间的接口
- 为了让用户方便、快捷、可靠的操作计算机硬件并执行自己的程序,操作系统提供了用户接口
- 操作系统提供的接口分为两类:命令接口和程序接口
- 命令接口:用户可以直接使用的,利用这些操作命令来组织和控制作业的执行
- 程序接口:用户通过程序间接使用的,编程人员可以使用它们来请求操作系统服务
1️⃣命令接口
-
命令接口分为两类:联机命令接口和脱机命令接口,用户可以直接调用
-
联机命令接口:又称交互式命令接口,适用于分时或实时系统的接口,由一组键盘操作命令组成。用户输入一条指令,操作系统就执行一条指令;
-
脱机命令接口:又称批处理接口,使用于批处理系统,由一组作业控制命令组成。用户输入一堆指令,操作系统运行一堆指令。在操作系统运行这些命令时用户不可干预。
批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 。
2️⃣程序接口
- 程序接口:由一组系统调用(也称广义指令)组成
- 用户通过在程序中使用这些系统调用来请求操作系统为其提供服务,只能通过用户程序间接调用
- 如使用各种外部设备、申请分配和回收内存及其它各种要求
动态链接库英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。
- 比如常见的图形用户界面程序接口GUI
(3)作为扩充机器(虚拟机)
- 没有任何软件支持的计算机称为裸机
- 覆盖了软件的机器称为扩充机器或虚拟机
文章目录
1.并发
2.共享
(1)互斥共享
(2)同时共享
(3)并发性和共享性互为存在条件
3.虚拟
4.异步
1.并发
- 并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的, 操作系统的并发性指系统中同时存在着多个运行的程序
- 并行:两个或多个事件在同一时刻发生
- 一个单核(CPU)同一时刻只能执行一个程序,因此操作系统会协调多个程序使他们交替进行(这些程序在宏观上是同时发生的,在微观上是交替进行的)
- 操作系统是伴随着“多道程序技术出现的”,因此操作系统和并发是一同诞生的
- 在如今的计算机中,一般都是多核cpu的,即在同一时刻可以并行执行多个程序,比如我的计算机是8核的,我的计算机可以在同一时刻并行执行8个程序,但是事实上我们计算机执行的程序并不止8个,因此并发技术是必须存在的,并发性必不可少。
2.共享 - 资源共享即共享,是指系统中的资源可以供内存中多个并发执行的进程共同使用
- 共享分为两类:互斥共享和同时共享
(1)互斥共享 - 计算机中的某个资源在一段时间内只能允许一个进程访问,别的进程没有使用权
- 临界资源(独占资源):在一段时间内只允许一个进程访问的资源,计算机中大多数物理设备及某些软件中的栈、变量和表格都属于临界资源,它们被要求互斥共享
- 举个例子:比如QQ和微信视频。同一段时间内摄像头只能分配给其中一个进程
(2)同时共享 - 计算机中的某个资源在在一段时间内可以同时允许多个进程访问
- 同时共享通常要求一个请求分为几个时间片段间隔的完成,即交替进行,“分时共享”
- 这里的同时指在宏观上是同时的,在微观上是交替进行访问的,只是cpu处理速度很快,我们感觉不到,在宏观上感觉是在同时进行
- 举个例子:比如QQ在发送文件A,微信在发送文件B,宏观上两个进程A和B都在访问磁盘,在我们看来是同时进行的,但是在微观上两个进程A和B是交替进行访问磁盘的,只是时间太短,cpu处理速度太快,我们感觉不到。
- 注意:有时候多个进程可能真的是在同时进行资源访问,比如玩游戏时可以放音乐,游戏声音和音乐声音都能听见
(3)并发性和共享性互为存在条件
3.虚拟
多道程序设计:是指在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行。 两个或两个以上程序在计算机系统中同处于开始到结束之间的状态。这就称为多道程序设计。多道程序技术运行的特征:多道、宏观上并行、微观上串行。
- 虚拟是把一个物理上的实体变为若干逻辑上的对应物。
- 物理实体(前者)是实际存在的;而后者是虚的,是用户感觉上的事务
- 虚拟技术:用于实现虚拟的技术
- 虚拟处理器(CPU):通过多道程序设计技术,采用让多道程序并发执行的方法,分时来使用一个CPU,实际物理上只有一个CPU,但是用户感觉到有多个CPU
- 虚拟存储器:从逻辑上扩充存储器容量,用户感觉到的但实际不存在的存储器
- 虚拟设备:将一台物理设备虚拟为逻辑上的多台设备,使多个用户在同一时间段内访问同一台设备,即同时共享,用户宏观上感觉是同时的,但实际上是微观交替访问同一台设备的
- 操作系统的虚拟技术科归纳为:
- 时分复用技术:如处理器的分时共享
- 空间复用技术:如虚拟存储器
4.异步
- 异步:多道程序环境允许多个程序并发执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。
- 比如A进程正在占用CPU计算,B进程这时也想占用CPU计算,B进程只有等,等A进程算完了,A进程去访问磁盘资源了,这时B进程再占用CPU进行计算,B进程还没计算完,A进程从磁盘取出资源了,A进程发现B这时在占用CPU,这时A进程就需要等待,等B算完后再继续到CPU中进行计算。由于每个进程占用资源的时间不固定,所以进程的执行以不可预知的速度前进
文章目录:
1.操作系统的分类及其特征优劣
2.操作系统的发展历程
1.操作系统的分类及其特征优劣
2.操作系统的发展历程
文章目录:
1.操作系统的运行机制和体系结构
2.操作系统内核在计算机系统中的层次结构
3.操作系统体系结构类比
4.操作系统用户态和核心态的转换
1.操作系统的运行机制和体系结构
2.操作系统内核在计算机系统中的层次结构
3.操作系统体系结构类比
4.操作系统用户态和核心态的转换
中断异常框架图
文章目录
1.系统调用知识框架图
2.系统调用和库函数的区别
3.系统调用的执行过程
1.系统调用知识框架图
2.系统调用和库函数的区别
3.系统调用的执行过程
文章目录
1.进程的定义
(1)程序的概念
(2)进程的概念
(3)进程的定义
2.进程的特征
3.进程的组成
4.进程的组织
(1)链接方式
(2)索引方式
1.进程的定义
(1)程序的概念
(2)进程的概念
进程和程序的区别和联系:
区别:
1)进程是动态的;程序是静态的。
(2)进程有独立性,能并发执行;程序不能并发执行。
(3)二者无一一对应关系。
(4)进程异步运行,会相互制约;程序不具备此特征。
但是,进程与程序又有密切的联系: 进程不能脱离具体程序而虚设, 程序规定了相应进程所要完成的动作。
(5)组成不同。进程包含PCB、程序段、数据段。程序包含数据和指令代码。
(6)程序是一个包含了所有指令和数据的静态实体。本身除占用磁盘的存储空间外,并不占用系统如CPU、内存等运行资源。
(7)进程由程序段、数据段和PCB构成,会占用系统如CPU、内存等运行资源。
(8)一个程序可以启动多个进程来共同完成。
联系:进程不能脱离具体程序而虚设, 程序规定了相应进程所要完成的动作。
(3)进程的定义
2.进程的特征
3.进程的组成
-
而其中最重要的就是进程控制块PCB(Process Control Block)
-
PCB简介:
-
PCB中记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息。
-
PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
-
或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
-
例如,当OS要调度某进程执行时,要从该进程的PCB中查处其现行状态及优先级;在调度到某进程后,要根据其PCB中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址,找到其程序和数据;
-
进程在执行过程中,当需要和与之合作的进程实现同步,通信或者访问文件时,也都需要访问PCB;
-
当进程由于某种原因而暂停执行时,又须将器断点的处理机环境保存在PCB中。
-
可见,在进程的整个生命期中,系统总是通过PCB对进程进行控制的,即系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的。
所以说,PCB是进程存在的唯一标志。
-
PCB通常包含的内容:
4.进程的组织
(1)链接方式
(2)索引方式
文章目录
1.思维导图总览
2.进程的状态
(1)三种基本状态(就绪、运行、阻塞)
(2)创建态和结束态
3.进程状态之间的转换
1.思维导图总览
2.进程的状态
(1)三种基本状态(就绪、运行、阻塞)
(2)创建态和结束态
注意:
在原语中,如果把阻塞态变成就绪态,就要修改PCB的进程状态标志,并且把 PCB放到相应的队列,如果在修改完标志后就切换进程,PCB记录的状态和他所处的位置不匹配,即:未在就绪队列中,所以在进程状态修改的过程中是不可以切换进程的
-
创建态
-
结束态
3.进程状态之间的转换
进程一共有如下5种状态,那么他们之间如何实现切换呢?
咱们从一个进程的从无到有看起,来了解进程5种状态之间的转换
来一张形象生动的图片感受一下5种状态之间的切换
//缺少2.1.2的内容,等待补充
注意:
不能由阻塞态直接转为运行态,也不能就绪态直接转为阻塞态,因为进入阻塞态是进程主动请求的,必然需要进程在运行的时候才能发出这种请求,也就是必须在运行态才可以转为阻塞态
七种状态注意点:
1 处于就绪态的进程因为内存占用较高或者系统负载较高可能会被调到外存的就绪挂起状态,直到空间足够才会被激活回到就绪态
2阻塞挂起态当它等待的阻塞事件发生时-》就绪挂起-》就绪态
3 运行态运行结束之后可能变成就绪挂起态
4、创建态之后若内存空间不够会变成就绪挂起态
文章目录
0.思维导图
1.什么是进程控制?
2.原语实现对进程的控制
3.回忆进程的组织
4.进程控制大致图解
5.进程控制原语的相同点
6.进程控制的五种原语
(1)进程的创建原语
(2)进程的终止原语
(3)进程的唤醒和阻塞原语
(4)进程的切换原语
0.思维导图
1.什么是进程控制?
2.原语实现对进程的控制
3.回忆进程的组织
4.进程控制大致图解
这里说明一下调度和切换的区别:
调度是指决定资源分配给哪个进程的行为,是一种决策行为
切换是指实际分配的行为,是执行行为
一般来说现有资源调度,后有进程切换
5.进程控制原语的相同点
接下来我们就具体学习一下关于进程控制的五种原语,进程的创建、终止、唤醒、阻塞、切换;
(1)进程的创建原语
(2)进程的终止原语
(3)进程的唤醒和阻塞原语
- 进程的阻塞和唤醒原语是成对存在的,必须成对使用。
- 阻塞原语是由被阻塞进程自我调用实现的
- 唤醒原语是由一个被唤醒进程合作或被其他相关的进程调用实现的
(4)进程的切换原语
文章目录
0.思维导图
1.什么是进程通信?
2.共享存储
3.管道通信
4.消息传递
0.思维导图
1.什么是进程通信?
2.共享存储
3.管道通信
4.消息传递
0.思维导图
1.为什么要引入线程?
2.什么是线程?
3.引入线程带来的变化及进程与线程的比较
4.线程的属性
5.线程的实现方式
(1)用户级线程
(2)内核级线程
(3)特殊的组合方式及重点注意
6.多线程模型
(1)多对一模型
(2)一对一模型
(3)多对多模型
0.思维导图
1.为什么要引入线程?
为了方便于理解,我打开了我的任务管理器,可以看出chrome一个进程,下面有很多分支,可以把这些分支当做线程看待,PID即进程和线程都有的标识符。
2.什么是线程?
3.引入线程带来的变化及进程与线程的比较
4.线程的属性
5.线程的实现方式
- 前面我们了解了引入线程的好处和引入线程的变化,以及线程的属性,那么线程如何实现呢?
- 线程的实现分为两类:用户级线程(User-Level Thread,UTL)和内核级线程(Kernel-Level Thread, KTL)l。内核级线程又称内核支持的线程。
(1)用户级线程
(2)内核级线程
(3)特殊的组合方式及重点注意
6.多线程模型
(1)多对一模型
(2)一对一模型
(3)多对多模型