NJU操作系统公开课笔记(2)

上期目录:

NJU操作系统公开课笔记(1)https://blog.csdn.net/jsl123x/article/details/134431343?spm=1001.2014.3001.5501

目录

一.处理器与寄存器

二.中断

三.中断系统

四.进程

五.线程与多线程技术概述

六.处理器调度算法


一.处理器与寄存器

二.中断

只有通过中断,用户程序才能切换为内核程序~

狭义的中断、系统异常和异常共同构成了广义的中断~

所谓的系统调用,本质上是一种中断~

三.中断系统

中断是激活操作系统的唯一方式~

四.进程

  • 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动~
  • 进程是操作系统进行资源分配和调度的一个独立单位~

概念级的进程状态:

  • 运行态指进程占有处理机运行
  • 就绪态指进程具备运行条件等待处理器运行
  • 等待态指进程由于等待资源、输入输出、信号等而不具备运行条件~

(挂起状态指的是进程本身不具有任何资源~)

(原语是不可以被打断的~)

(进程切换必须在核心态下才能完成~)

五.线程与多线程技术概述

单线程结构进程的问题:

  • 单线程结构进程在并发程序设计上存在的问题
  • 进程切换开销大
  • 进程通信开销大
  • 限制了进程并发的粒度~
  • 降低了并行计算的效率~

(任务并非无限可分~)

并发多线程程序设计的优点:

  • 快速线程切换

  • 减少系统管理开销

  • 线程通信易于实现

  • 并行程度提高

  • 节省内存空间
    多线程技术的应用:

  • 前台和后台工作

  • C/S应用模式

  • 加快执行速度

  • 设计用户接口

KLT指的是内核级线程

ULT指的是用户级线程

(应用程序的需要催生了线程的产生~)

(物理并行性不是很好~)

六.处理器调度算法

在多道程序设计系统中,内存中有多道程序运行,他们相互争夺处理机这一重要的资源。处理机调度就是从就绪队列中,按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

一般情况下,当占用处理机的进程因为某种请求得不到满足而不得不放弃CPU进入等待状态时,或者当时间片到,系统不得不将CPU分配给就绪队列中另一进程的时候,都要引起处理机调度。除此之外,进程正常结束、中断处理等也可能引起处理机的调度。因此,处理机调度是操作系统核心的重要组成部分,它的主要功能如下:

  • 记住进程的状态,如进程名称、指令计数器、程序状态寄存器以及所有通用寄存器等现场信息,将这些信息记录在相应的进程控制块中。
  • 根据一定的算法,决定哪个进程能获得处理机,以及占用多长时间。
  • 收回处理机,即正在执行的进程因为时间片用完或因为某种原因不能再执行的时候,保存该进程的现场,并收回处理机。
  • 处理机调度的功能中,很重要的一项就是根据一定算法,从就绪队列中选出一个进程占用CPU运行。可见,算法是处理机调度的关键。

(生死攸关,最核心的程序~)

相关推荐
doubt。36 分钟前
【BUUCTF】[RCTF2015]EasySQL1
网络·数据库·笔记·mysql·安全·web安全
Zelotz1 小时前
线段树与矩阵
笔记
汇能感知2 小时前
光谱相机在智能冰箱的应用原理与优势
经验分享·笔记·科技
Pandaconda3 小时前
【Golang 面试题】每日 3 题(四十一)
开发语言·经验分享·笔记·后端·面试·golang·go
红色的山茶花4 小时前
YOLOv10-1.1部分代码阅读笔记-predictor.py
笔记·深度学习·yolo
执念斩长河5 小时前
Go反射学习笔记
笔记·学习·golang
汇能感知5 小时前
摄像头模块如何应用在宠物产品领域
经验分享·笔记·科技·宠物
陈王卜5 小时前
html与css学习笔记(2)
笔记·学习
Rinai_R6 小时前
【Golang/gRPC/Nacos】在golang中将gRPC和Nacos结合使用
经验分享·笔记·学习·微服务·nacos·golang·服务发现
小爬菜6 小时前
Django学习笔记(项目默认文件)-02
前端·数据库·笔记·python·学习·django