PS:下面的知识点总结大部分来自《王道考研》操作系统课程的笔记!!!
资源:任何为任务所占用的实体;
代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;
共享资源:可以被一个以上任务使用的资源;
任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态(线程状态);
任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行(进程上下文切换和线程上下文切换)
内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核和可剥夺型内核;
内核空间 :操作系统(Operating System)是管理计算机硬件与软件资源的程序,操作系统内核驻留在受保护的内核空间。
用户空间:应用是运行在操作系统上运行的程序,工作在用户空间。
隔离:出于安全性和稳定性的考虑,用户空间的程序是无法直接执行内核代码(例如:I/O 读写、创建新进程/线程)的,也无法直接的访问内核数据,必须通过系统调用。
调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;
优先级的问题:
任务优先级:分为: 优先级不可改变的静态优先级 优先级可改变的动态优先级; 优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,>优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。
满足互斥条件的一般方法有:
关中断 使用测试并置位指令(TAS) 禁止做任务切换 利用信号量。
中断响应时间通常被定义为:
中断响应时间=中断延迟时间+保存CPU状态的时间+该内核的ISR进入函数的执行时间。 中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间。 最大中断禁止时间:
PSl:当实时操作系统(RTOS)运行在核态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当实时操作系统(RTOS)重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。
pS:上述中, 最大中断禁止时间和任务切换时间是评价一个实时操作系统(RTOS)实时性最重要的两个技术指标。
线程和CPU: 线程是和CPU核绑定的,而进程会在核中间进行切换.
指令:就是让CPU做一件具体的事情
原子性:是指某种任务执行,要么不执行,要么执行到底,中间不可中断。
IPC :跨进程通信方式
定义CPU的处理器状态:
程序状态寄存器(PSW)的某个标志位来进行标记:如:
因指令区分特权和非特权,对应的程序也需要进行区分,有的程序需要特权指令,有的不需要。
内核是计算机上配置的底层软件,是操作系统最基本最核心的部分。
PS:内核程序:实现操作系统内核功能的程序.
因为有内核程序和应用程序,那我们的操作系统什么样级别的功能需要运行再内核态中的呐?
操作系统内核功能层上的分类:
对于内核功能来说,因为主要涉及到和硬件之间交互管理,通常需要很多程序模块管理:
PS:原语:是一种特殊的程序,它接近于硬件的部分,这种程序的运行具有原子性,运行时间较短,调用频繁
对资管管理不同方式下:
大内核
1)定义:把操作系统的主要功能模块都作为系统内核,运行再内核态
2)优点:高性能
3)缺点:内核模块多代码庞大,结构混乱,难以维护
微内核
1)定义:只把基础的功能保留在内核
2)优点:内核功能少,结构清晰,方便维护
3)缺点:需要频繁的在核心态和用户态之间进行切换(工作任务提审和执行),性能有所损耗,性能低
在计算机运行过程中,当发生某个事件后,CPU 会停止当前程序进程运行,然后去处理当前接收到的事件,并在处理完毕后继续执行原程序进程。
早起计算机系统的运行:
串行的运行:单位时间内,只有有一个程序运行。
缺点:计算机系统的利用率低下,上面中需要等待IO处理完成才会移除标记任务完成在从CPU上标记任务完成,然后再给下一个任务执行。
操作系统的引入:是为了更高效提高系统利用率和管理。
近代操作系统中,是很多程序进程运行着的,每个进程的启动的时候,都会被加载到计算机的内存中,所以我们的计算机内存中充斥着很多任务都再不断运行和资源共享或竞争。而且部分任务,再执行的过程中可能有涉及到需要系统内核授权执行的指令的话,此时就需要中断机制切入:
如:处于用户态的程序需要申请或运行一些核心态的指令的时候,需要操作系统介入,(如进程切换,分配I/O设备等)这些的操作由于是需要特权指令的,所以此时需要要求CPU从用户态,转换为核心态才可以执行当前用户程序申请的特权指令,当切换为核心态后,当前申请的进程处于暂停状态,操作系统获得计算机的控制权,进行相关调度任务安排。
“用户态” ===>'核心态'的切换:
用户态和核心态的切换主要是应对一些需要特权指令的时候进行切换,它的切换是通过:中断机制实现的,并且只能使用中断来进行切换。没有别的方法。
“核心态” ===>'用户态'的切换:
核心到用户的切换是通过执行一个特权的指令,把程序的状态字(PSW)的标记设置为用户态。
PS:时钟中断属于硬中断的一种,定期打断 CPU 执行的线程,以便切换给其他线程以得到执行机会。(时间片轮询机制)
定义:系统调用(Syscall) 是【软中断】处理程序的一种。
作用:用于让程序的运行从用户态陷入内核态。
系统中各自资源统一由操作系统进行调度管理,涉及相关的资源分配的(如:IO操作,文件管理,存储分配等)都需程序使用【系统调用】的接口提出系统服务的申请,最终由操作系统完成,保障系统稳定和安全,规避用户非法操作。
运行:运行于核心态。
白话说明:
【系统调用】可以理解是一种特殊接口函数,它是由操作系统提供给应用程序(程序员)使用的一些比较页数的系统级别接口函数,我们应用程序(程序员编码)可以发出系统调用请求获取操作系统的服务。
系统调用就是用户程序和硬件设备之间的中间代理人。
调用流程:
库函数可以是系统调用进一步的封装,也可以不包含有系统调用的函数
如:
PS:来自王道考研老师的视频:
个人其他博客地址
简书:https://www.jianshu.com/u/d6960089b087
掘金:https://juejin.cn/user/2963939079225608
小钟同学 | 文 【原创】| QQ:308711822
1:本文相关描述主要是个人的认知和见解,如有不当之处,还望各位大佬指正。 2:关于文章内容,有部分内容参考自互联网,如有链接会声明标注;如没有及时标注备注的链接的,如有侵权请联系,我会立即删除处理哟。
原文作者:程序员小钟同学;如有侵权,请联系管理员删除。