美文网首页
操作系统总结(2)

操作系统总结(2)

作者: 锦绣拾年 | 来源:发表于2020-03-12 22:53 被阅读0次

主要内容参考陈向群老师的PPT
进程调度、用户态、内核态。 中断。

进程调度

调度是一种设计,走到这之后,下一步去哪
调度时机:在内核对中断/异常/系统调用处理后,要返回到用户态的时候,要进行进程调度,即出内核态,需要调度

典型的事件举例:
• 创建、唤醒、退出等进程控制操作
• 进程等待I/O 、I/O 中断
• 时钟中断,如:时间片用完、计时器到时
• 进程执行过程中出现abort 异常

• 进程切换:是指一个进程让出处理器,由另一个进程占用处理器的过程

进程切换主要包括两部分工作
切换全局页目录以加载一个新的地址空间 【寄存器,谁上CPU,就放谁的页表起始地址】
• 切换【内核栈】和【硬件上下文】,其中硬件上下文包括了内核执行新进程需要的全部信息,如CPU相关寄存器

上下文切换具体步骤

场景:进程A 下CPU ,进程B 上CPU
• 保存进程A 的上下文环境(**程序计数器、程序状态字、其他寄存器…… **)
• 用新状态和其他相关信息更新进程A 的PCB
• 把进程A 移至合适的队列(就绪、阻塞…… )
• 将进程B 的状态设置为运行态
• 从进程B 的PCB 中恢复上下文(程序计数器 、程序状态字、其他寄存器……)

上下文切换的开销:
直接开销:内核完成切换所用的CPU时间
• 保存和恢复寄存器……
• 切换地址空间(相关指令比较昂贵)
间接开销
• 高速缓存(Cache)、缓冲区缓存(Buffer Cache)和TLB(Translation Look-aside Buffer)失效

操作系统运行环境与运行机制

不同权限的不同指令——目的是为了保护,隔离
 内核态(Kernel Mode) :运行操作系统程序
 用户态(User Mode) :运行用户程序
• 用户态 → 内核态
唯一途径 → 中断/ 异常/ 陷入机制 (系统调用等)
通过访管指令 如int指令。条特殊的指令:陷入指令(又称 访管指令 )提供给用户程序的接口,用于调用操作系统的功能(服务)
• 内核态 → 用户态
设置程序状态字PSW(进程调度 出内核)
进内核 -必须经过中断异常机制
出内核-必须经过调度机制
一个进程因为系统调用,暂停执行,操作系统陷入内核态执行内核程序,系统调用执行完后仍然需要调度机制选择新程序或者是旧程序执行。

中断与异常

CPU 暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序 ,处理完成后返回断点, 继续执行被打断的程序
随机发生、自动处理、可恢复

中断的引入: 为了支持CPU和设备之间的并行操作
• 当CPU 启动设备进行输入/ 输出后,设备便可以独立工作,CPU 转去处理与此次输入/ 输出不相关的事情;当设备完成输入/ 输出后,通过向CPU 发中断报告此次输入/ 输出的结果,让CPU

异常的引入: 表示CPU 执行指令时本身出现的问题
• 如算术溢出、除零、取数时的奇偶错,访存地址时越界或执行了“陷入指令” 等,这时硬件改变了CPU 当前的执行流程,转到相应的错误处理程序或异常处理程序或执行系统调用


异常与中断.png
zdyc2.png
zd2.png

中断处理过程
1、判断中断来源——发出信号
2、CPU为处理中断做准备。"处理器" 切换到内核态 保存被中断程序上下文环境,PC/PSW
3、查中断向量表,找到中断处理程序入口,设置PC, CPU控制权转移到中断处理程序处。
4、中断处理程序保存现场内容,处理
5、CPU检测到中断返回指令,恢复上下文信息,以及PC和PSW

系统调用

系统调用的参数传递

系统调用的参数传递
• 系统调用使用寄存器传递参数,要传递的参数包括:
• 系统调用号
• 系统调用所需的参数
用于传递参数的寄存器有:
• eax 用于保存系统调用号和系统调用返回值
• 系统调用参数保存在ebx,ecx,edx,esi 和edi 中,参数个数不超过6 个
• 进入内核态后,system_call再将这些参数保存在内核堆栈里


gc.png

Linux保存参数信息与压栈顺序


canshu.png
中断发生后OS低层工作步骤
  1. 硬件压栈 : 程序计数器等
  2. 硬件从中断向量装入新的程序计数器 等
  3. 汇编语言过程保存寄存器值
  4. 汇编语言过程设置新的堆栈
  5. C 语言 中断服务 程序 运行( 例: 读 并 缓冲输入)
  6. 进程 调度程序决定下一个将运行的进程
  7. C 语言 过程返回至汇编代码
  8. 汇编语言过程开始运行新的当前进程

相关文章

  • 操作系统总结(2)

    主要内容参考陈向群老师的PPT进程调度、用户态、内核态。 中断。 进程调度 调度是一种设计,走到这之后,下一步去哪...

  • 操作系统面试重难点总结

    针对操作系统,根据面试重难点总结以及网络上的一些参考,对操作系统面试知识点的总结与学习。 一、操作系统知识点图谱 ...

  • 操作系统面试重难点总结

    针对操作系统,根据面试重难点总结以及网络上的一些参考,对操作系统面试知识点的总结与学习。 一、操作系统知识点图谱 ...

  • 11. Asyncio 和 Aiohttp

    总结:1.IO有关的都是跟系统相关的事情;2.进程和线程是操作系统支持的功能,由操作系统来进行调度;协程是我们在代...

  • 操作系统概述思维导图

    总结自王道21考研操作系统全程班

  • 操作系统总结

    1. 基础知识 1.1 内核态和用户态 多数计算机有两种运行模式,用户态和内核态。软件中最基础的部分是操作系统,它...

  • 操作系统总结

  • 测试markdown和公式(注:此文内容为本人测试)

    1 公式 2 列项 操作系统 **实时操作系统 rt-thread **非实时操作系统 linux

  • 知识点总结2-操作系统

    1.死锁是什么?什么情况下产生?怎么解决? 死锁条件 1.互斥:坑(资源)只能一个人蹲 2.请求与保持:申请去隔壁...

  • Day12--操作系统阶段总结(2)

    课程知识梳理复习4) 操作系统基础命令回顾04. 系统文件相关命令:创建文件信息命令: touch文件信息 (修改...

网友评论

      本文标题:操作系统总结(2)

      本文链接:https://www.haomeiwen.com/subject/avvgjhtx.html