操作系统(哈工大李治军老师)

L4 操作系统接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

操作系统接口

用户通过程序(应用软件)使用计算机
程序是普通代码加上一些重要的函数
如:

操作系统提供重要函数(重要函数就是操作系统接口,接口表现为函数调用,由系统提供,因此叫系统调用)

常见的系统调用:
在这里插入图片描述

L5 系统调用的实现

在这里插入图片描述
问题1:
操作系统在内存中,应用程序也在内存中,为什么应用程序不能直接访问存取内核中的信息?
回答:
因为内核中有很多重要的信息与内容,若能随意调用和jmp那就很危险比如root密码被修改,word内容通过显存被看到

问题2:
怎么做到不让应用程序随意的jmp,调用内核数据?
回答:
在这里插入图片描述
硬件把内存割成了两个区域,一个叫用户态,一个叫内核态。
内核态可以访问任何数据,用户态不能访问内核数据
在这里插入图片描述
DPL用来描述目标内存段的特权级别(要访问的目标区域的特权级别)
CPL当前的特权级别

特权级别:
在这里插入图片描述
在这里插入图片描述
若CPL的数字<=DPL的数字,表示当前特权级别更高,则可以进入,否则不能进入

问题3:
系统调用如何进入内核态?
回答:
硬件提供了主动进入内核的方法——中断指令int(唯一的方法)
因此,系统调用的核心:
在这里插入图片描述
系统调用的实现:
在这里插入图片描述

L8 CPU管理

CPU的工作原理:
把一个程序放在内存中,设置初始的地址寄存器PC为第一个程序的内存地址,CPU自动的取址执行

管理CPU最简单的方法:
设置好PC的初值,CPU自动工作

这样会出现什么问题?
阻塞

解决办法:
多道程序设计(切来切去)

并发:一个CPU上交替的执行多个程序

怎么做到?

  1. 修改寄存器PC
  2. 使用PCB来记录CPU切出去的那个时刻程序执行到哪里,方便CPU切回来的时候继续执行

运行的程序 和 静态的程序不同
运行中的程序叫做进程

  1. 进程有开始,有结束,程序没有
  2. 进程会走走停停,程序不会
  3. 进程需要记录,程序不用

L9 多进程图像

上层用户看到的是3个进程同时使用
在这里插入图片描述
对于OS来说,是多个进程的推进
操作系统需要把进程记录好,按照合理的次序推进(分配资源,进行调度)

多进程图像从开机到关机

在这里插入图片描述
开机时创建个进程,执行shell,shell再启动其他进程在这里插入图片描述

多进程如何组织?

操作系统管理进程的核心就是PCB + 状态 + 队列
Process Control Block:用来记录进程信息的数据结构
把PCB组织成不同的数据结构,如就绪队列,磁盘等待队列在这里插入图片描述
状态:
进程根据状态分类
在这里插入图片描述

多进程如何交替(切换)?

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_51082307/article/details/109555297
今日推荐