【操作系统导论】虚拟化CPU

本文深入探讨了操作系统的虚拟化CPU技术,包括受限直接执行和进程切换,并详细阐述了各种进程调度策略,如FIFO、SJF、STCF、RR以及多级反馈队列调度。此外,还讨论了多处理器调度中的单队列和多队列调度策略,重点解析了Linux多处理器调度程序的实现。
摘要由CSDN通过智能技术生成

操作系统介绍

  • 不像操作系统为CPU和内存提供抽象,操作系统不会为程序创建专用的虚拟磁盘,操作系统管理磁盘的软件叫做文件系统
  • 文件系统必须做很多工作
    • 确定数据位于磁盘那个位置
    • 在文件系统维护的结构中对其进行记录,这样做需要向底层存储设备发出IO请求,以读取现有结构或更新(写入)它们,操作系统提供了一种通过系统调用来访问设备的方法,叫做标准库
  • 抽象使我们不需要考虑底层,比如用C不用考虑汇编,汇编不用考虑逻辑门,逻辑门构建处理器不需要考虑晶体管

进程

  • 程序计数器告诉我们程序当前正在执行哪条指令
  • 一个操作系统对进程需要包括如下接口
    • 创建
    • 销毁
    • 等待,比如等待进程停止
    • 其它控制,比如暂停
    • 获取状态
  • 进程创建过程
    • 将代码和初始化变量加载到内存中,现代操作系统使用惰性加载
    • 为程序栈分配内存
    • 为程序堆分内存
    • 一些其他初始化任务,比如进程3个描述符
  • 进程状态
    • 运行
    • 就绪
    • 阻塞,比如当进程发起IO时,其他进程可以使用处理器,IO完成,进程再到就绪状态
  • 进程最重要的API
    • fork 创建一个进程,子进程会在fork出开始执行,fork之前的不执行
    • wait 等待其他进程完毕
    • exec 让子进程执行其他程序,而不是父进程的代码,这里有个非常重要的点,我们可以在fork之后,exec之前,做一些其他操作,比如执行之前,改变标准输出重定向到其它文件

受限直接执行

  • 操作系统必须以高性能的方式虚拟化CPU,同时保持对系统的控制
  • 直接执行,指的是直接在CPU上运行程序,但现在有两个问题
    • 操作系统如何保证程序不做我们不希望他做的事
    • 进程间如何切换
1.受限制的操作

硬件通过提供不同的执行模式来协助操作系统,在用户模式下,应用程序无法完全访问硬件资源,在内核模式下,操作系统可以访问机器的全部资源

如果用于希望执行某些特权操作,现在操作系统都提供了系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值