分类 操作系统 下的文章

bjmayor发布于2022-01-24

虚拟化内存

[TOC]

内存介绍

虚拟化内存

设计目标

目标:

  1. 透明, 这里指运行的程序感知不到内存被虚拟化的事实,相反,程序的行为就好像它拥有自己的私有物理内存。
  2. 效率 这里依赖硬件。譬如TLB, 主要消耗是虚拟地址转为实际物理地址。
  3. 保护 即程序不能访问它的地址空间之外的任何内容。从而也实现了隔离。

阅读全文»

bjmayor发布于2021-12-10

调度: 多级反馈队列

多级反馈队列

Multi-level Feedback Queue = MLFQ

如名字所示,解决思路就是将任务分级。

分成多个队列,每个队列的优先级不同,调度程序永远先运行完高优先级中的任务,再运行低优先级队列中的任务。

同一队列有多个任务时,轮转运行。

一个任务只能存在于一个队列中。

MLFQ调度策略的关键在于如何设置优先级。

阅读全文»

bjmayor发布于2021-12-09

基本调度策略

调度

调度策略

先做基本假设

  1. 每个工作运行相同的时间。
  2. 所有的工作同时到达。
  3. 一旦开始,每个工作保持运行直到完成。
  4. 所有的工作只是用CPU(无I/O操作)
  5. 每个工作的运行时间是已知的。

定义衡量指标。

  1. 周转时间。 = -
  2. 响应时间。 = -

这2个指标其实是互相矛盾的,不同同时最优。

阅读全文»

bjmayor发布于2021-12-08

cpu如何维护自己控制权的

cpu如何维护自己控制权的

[TOC]

关键概念

用户模式:受限的指令。

内核模式:所有指令

有些操作需要用到特权指令,这个只有在内核模式下才可以运行。

操作系统重获控制权有3种方式:

  1. 进程进行系统调用
  2. 进程出错,如访问了非法内存等。
  3. 时钟中断。

其中时钟中断很重要,是硬件支持。如果没有时钟中断,然后进程又不进行系统调用,也不出错(譬如:啥也不干的无限循环),这样操作系统无法获得控制权。

阅读全文»

bjmayor发布于2021-10-26

哲学家就餐问题

哲学家就餐问题

哲学家就餐问题是一个经典的同步问题,它是大量并发控制问题的一个例子。这个代表型的例子满足:在多个进程之间分配多个资源,而且不会出现死锁和饥饿。

本文内容主要是摘自《操作系统精髓与设计原理》

阅读全文»

bjmayor发布于2021-10-22

I/O多路复用

I/O 多路复用

前言

  • BIO 、NIO 、AIO 总结
  • Unix网络编程中的五种IO模型

为了加深对 I/O多路复用机制 的理解,以及了解到多路复用也有局限性,本着打破砂锅问到底的精神,前面我们讲了BIO、NIO、AIO的基本概念以及一些常见问题,同时也回顾了Unix网络编程中的五种IO模型。本篇重点学习理解IO多路复用的底层实现机制。

概念说明

IO 多路复用有三种实现,在介绍select、poll、epoll之前,首先介绍一下Linux操作系统中基础的概念

  • 用户空间和内核空间
  • 进程切换
  • 进程的阻塞
  • 文件描述符
  • 缓存 I/O

阅读全文»