程序员养成计划-操作系统篇之初识操作系统
Posted 计蒙不吃鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员养成计划-操作系统篇之初识操作系统相关的知识,希望对你有一定的参考价值。
系列文章目录
例如:初识操作系统
文章目录
前言
在初次学习操作系统的时候是在2018年,最近有粉丝投稿问能否出几期关于408的文章,盲猜也是在准备考研。恰好今年计蒙也打算考,就当三刷复习了。可能编写的速度比较忙,还请理解。如有不懂可留言。
一、操作系统的概念
1.系统资源的管理者
提供的功能:处理机管理,存储器管理,文件管理,设备管理
目标:安全,高效
小提:执行一个程序前需要将程序放到内存中,才能被CPU处理
2.向上提供服务(接口等)
封装的思想:将一些简单的硬件功能封装成简单易用的服务,方便用户使用,相对于用户而言,无需关心底层硬件的原理,只需向操作系统发出命令即可。
用户使用
- GUI:图形化用户接口
- 联机命令接口:(交互式命令接口)用户说一句,系统做一句。
- 脱机命令接口:(批处理命令接口)用户说一堆,系统跟着做一堆
软件/程序员用:
- 程序接口:可以在程序中进行系统调用来使用程序接口,普通用户不能直接使用程序接口,只能通过程序代码间接使用。
3.最接近硬件的一层软件
通常把覆盖了软件的机器称为扩展机器,又称为虚拟机。
需要实现对硬件机器的拓展(让各种硬件能够相互协调配合,实现更多更复杂的功能)
二、特征
并发,共享为两个最基本的特征,二者互为存在条件,没有并发和共享,就谈不上虚拟和异步
并发
两个或者多个事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生。
共享
资源共享,是指系统中的资源可供多个并发执行的进程共同使用
两种资源共享方式
- 互斥共享方式:一个时间段内只允许一个进程访问该资源
- 同时共享方式:运行一个时间段内由多个进程同时(宏观上)对它们进行访问
虚拟
进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性(时分复用技术)
异步
把一个物理上的实体变为若干个逻辑上的对应物。前者是实际存在的,后者是用户感受到的(空分复用技术)
三、发展与分类
手工操作阶段
用户独占全机,人机速度矛盾导致资源利用率极低
批处理阶段
- 单道批处理系统
引入脱机输入/输出技术(用外围机+磁带完成)并由监督程序负责控制作业的输入,输出
优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
缺点:内存中仅能有一道程序运行。CPU有大量时间是在空闲等待I/O完成
- 多道批处理系统
每次往内存中读入多道程序(操作系统正式诞生,用于支持多道程序并发运行)
优点:并发执行,共享计算机资源,资源利用率大幅提升,CPU保持忙碌,系统吞吐量增大。
缺点:用户响应时间长,没有人机交互功能,无法调试程序/无法在程序运行过程中输入一些参数
分时操作系统
计算机以时间片为单位为各个用户/作业服务,各个用户可以通过终端与计算机进行交互
优点:用户请求可以被即时响应,解决了人机交互问题,可以多用户同时使用一台计算机
缺点:不能优先处理一些紧急任务
实时操作系统
能够优先响应一些紧急任务,某些任务不需时间片排队
要在严格的时间限制内处理完事件。主要特点:及时性,可靠性
细分:
硬实时系统:必须在绝对严格的时间内完成
软实时系统:能接受偶尔违反时间规定
网络操作系统
实现网络中各种资源的共享(如文件共享)和各台计算机之间进行通信
分布式操作系统
分布性和并行性,系统中各计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行,协同完成这个任务
个人计算机操作系统
如 windows XP
四、运行机制
程序的运行
CPU执行一条条的机器指令的过程,二进制的机器指令
普通程序员:应用程序
操作系统的开发:内核程序,很多内核程序合在一起称为操作系统内核,简称“内核”(内核是最接近硬件的部分---管理者)
CPU的两种状态
CPU能判断指令的类型,CPU有两种状态"内核态"和"用户态"
内核态(核心态,管态):此时运行的是内核程序,此时可以执行的是特权指令
用户态(目态):运行的是应用程序,只能执行非特权指令
小提:CPU中有个程序状态寄存器(PSW),其中有个二进制位,1表示”内核态“,0表示”用户态“。
内核态和用户态的切换
内–用
执行一条特权指令
修改PSW标志位为”用户态“
操作系统主动让出CPU使用权
用–内
由”中断“引发
硬件自动完成变态的过程
触发中断信号意味着操作系统强夺回CPU使用权
但凡需要操作系统介入的地方都会触发
五、中断与异常
中断
是让操作系统内核夺回CPU使用权的唯一途径,如果没有中断,CPU就会一直执行这个程序.就不需要并发这个概念了
中断的两种类型
-
内中断
与执行的指令有关,中断信号来源于CPU内部
也称:异常,例外
类型:陷阱,陷入,故障,终止举例: 应用想请求操作系统内核的服务,会执行一条特殊的指令--陷入指令(并不是特权指令),此指令会触发一个内部中断信号
-
外中断
与执行的指令无关,中断信号来源于CPU外部
也称:中断举例: 时钟中断 由时钟部件发来的中断信号 时钟部件每隔一段时间就会给CPU发一次 I/O中断 由输入/输出设备发来的中断信号 当输入输出任务完成时,向CPU发 CPU的设定 每一条指令执行结束时,CPU都会例行检测是否有外中断信号
中断机制的基本原理
不同的中断信号,需要用不同的中断处理程序来处理
大概流程
1. 当CPU检测到中断信号
2. 中断信号分类
内中断:CPU在执行指令时会检测是否有异常
外中断:每个指令周期末尾,CPU会检查是否有中断信号需要处理
3. 根据中断信号类型去查询“中断向量表”, 找到相应的中断处理程序
六、系统调用
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和一些程序接口。其中,程序接口是由一组系统调用组成
系统调用是操作系统提供给应用程序使用的接口,应用程序可以通过系统调用来请求获得操作系统内核的服务。
系统调用和库函数的区别
系统调用比库函数更加底层,且有些库函数不涉及系统调用
按照功能分类
设备管理,文件管理,进程控制,进程通信,内存管理,记忆:凡是与共享资源有关的操作,需保证系统的稳定性和安全性
系统调用的过程
1.传递系统调用参数
2.执行陷入指令(用户态),又叫:trap指令,访管指令
3.执行相应的内请求核程序处理调用(核心态)
4.返回
- 注意点
陷入指令是在用户态执行的,执行后立即引发一个内中断,使CPU进入核心态
发出系统调用请求是在用户态,对系统调用的相应处理在核心态下进行
七、操作系统的体系结构
- 内核是操作系统最根本,最核心的部分,实现操作系统的那些内核功能的那些程序就是内核程序
- 必须放在内核中的模块
时钟管理:实现计时功能
中断处理:负责实现中断机制
原语:是一种特殊的程序,处于操作系统的最底层,是最接近硬件的部分,此程序运行具有原子性,只能一气呵成,运行时间较短,调用频繁。
- 不直接涉及硬件的部分:进程,储存器,设备管理等
所以有些操作系统不将此部分放入内核
- 由此分为两种内核
大内核
大内核:以上全部包括
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核
微内核:不纳入一些不涉及硬件的部分
优点:方便维护
缺点:性能较低
- 关于两者的CPU改变状态
改变状态是有成本的,要消耗不少时间,频繁的变态会降低系统性能。相比较而言,微内核较为频繁。
以上是关于程序员养成计划-操作系统篇之初识操作系统的主要内容,如果未能解决你的问题,请参考以下文章