哈工大操作系统
chen_hui.778
学习就像在黑房子里面洗衣服,你永远不知道洗的有多干净,可以做的就是一直洗,等到天亮之后,你的衣服就干净了。
展开
-
L17 信号量临界区保护
为什么要保护信号量和临界区? 在现实中如何保护信号量和临界区? empty = -1:的含义? 表示有一个进程正在睡眠 为什么要保护? 进程中存在一种调度,使得信号量引发错误。所以要保护! 怎么保护信号量? 要上锁 什么是临界区? 当一个进程在进入一段代码时,另外一个进程不能进入对应的修改信号的代码。所以出现了保护修改信号量的临界区。 临界区代码的保护原则? 临界区怎样设计呢? 方法一 用一个轮...原创 2020-02-29 17:41:39 · 211 阅读 · 0 评论 -
L16 进程同步与信号量
进程合作:多进程共同完成一个任务 每一个进程有一段程序,执行不是顺序执行,有些地方需要等待其他进程发发送信号才能执行。 进程同步: 需要让进程走走停停来保证进程合理有序称为进程同步。 但从依靠counter进行语义判断不足以判断到底来了几个生产者,在消费者唤醒时,是不能够唤醒睡眠中的进程。 当有进程睡眠时sem -1 继续有进程睡眠时 sen 再-1 … 当有进程唤醒时 sem +...原创 2020-02-19 18:59:15 · 155 阅读 · 0 评论 -
L14 CPU调度策略和 L15 调度函数schedule()
问题引入:当一个进程阻塞时,cpu就进行调度,但是就绪队列有多个就绪进程,该选择哪一个进程呢?这就引起了进程的调度。 CPU调度的直观想法: FIFO: 谁先进入,先调度谁:简单有效 Priority? 任务短可以适当优先 FCFS(先来先服务) SJF:短作业优先 ...原创 2020-02-19 07:53:19 · 183 阅读 · 0 评论 -
L13 操作系统的这棵树
1.当操作系统一边输入,一边输出时。显然,在打印输出时,CPU必须等待,为了使CPU更好地工作,就出现了线程调度 2.所以就要把进程切出去,就要跳转,跳转去执行后要返回到程序执行,所以就需要栈。 3.使用一个栈,在连个程序段之间切换时,出现了混乱,为了解决混乱,所以引入了两个栈。 4.使用两个栈,就实现了yiled切换到另外一段程序,再在另外一段程序切换回来。 5.一直用户态执行,切换,是...原创 2020-02-18 11:30:23 · 200 阅读 · 0 评论 -
L11 内核级线程
进程,必须在内核中!! 进程必须访问资源,所以进程一定是内核级别的。 用户级线程与内核级线程最主要的区别是:核心级线程切换的是两套栈,而用户级线程用的两个栈 用户栈和内核栈如何切换?所有的中断,如中断(时钟,外设,INT指令)都引起上述的切换 执行int 0x80 时,就启动核心线程,就将堆栈指针压入,cs:ip压入。返回时:就怕内核栈弹出,实现返回。 当线程s阻塞时,就要就要进行线程的切...原创 2020-02-14 14:38:21 · 180 阅读 · 0 评论 -
L10 用户级线程
线程与进程之间的关系?(分治策略) 进程切换 = 资源+指令执行序列 线程:保留了并发的优点,避免了进程切换的代价。 但是线程不像进程一样(进程需要切换资源+指令序列,而线程只需要执行指令序列) 实质是:线程就是映射表不变而PC指针变 线程使用的实例: 一个网页的浏览器 一个线程用来从服务器接收数据 一个线程用来显示文本 一个线程用来处理图片 一个线程用来显示图片 这些线程要共享资源吗? 接收数据...原创 2020-02-14 11:09:33 · 125 阅读 · 0 评论 -
L9 多进程图像
什么是多进程图像? 如何使用CPU呢? 让程序执行起来 如何充分利用CPU呢? 启动多个进程,交替执行 启动了的程序就是进程,所以是多个进程推进 操作系统只需要把这些进程记录好,要按照合理的次序推进(分配资源,进行调度) 这就是多进程图像。 PCB:用来记录进程信息的数据结构,切换进程改变PCB 把进程按照状态进行分类:新建态,就绪态,运行态,阻塞态,终止态 多进程图像:多进...原创 2020-02-14 09:59:53 · 155 阅读 · 0 评论