操作系统笔记(1)

一、操作系统做什么

  • 用户视角:方便使用,不再让用户关心资源调用等
  • 系统视角:是所有程序中和硬件交互最为紧密的软件,是资源管理和分配器,另外操作系统还需要管理各种用户程序和IO设备
    操作系统的内核(kernel)始终随计算机运行,它控制着两种其他程序:系统程序(控制着系统,但不一定是内核的一部分)和应用程序

二、计算机系统结构

多个计算机和各种硬件设备的控制器通过总线(bus)进行连接

操作系统对每个设备控制器(device controller)都有对应的设备驱动器(device driver)。设备驱动器可以识别并适配不同类型的设备控制器并向操作系统提供关于该类设备统一的接口。、
设备控制器可以和CPU并行执行,但对共享内存的使用却需要同步化。

1. 中断(interrupt)

产生中断之前,设备驱动首先向设备控制器制定要处理的寄存器/内存块,而控制器根据其逻辑和给定参数进行操作,而控制器告知驱动某项操作已经完成的方法,就是中断。
中断数据传送流:控制器->中断服务程序(interrupt service routine)->针对中断的处理器(interrupt-specific handler)。
硬件设备可以在任何时刻通过向CPU发送信号产生中断(通常通过系统总线)。CPU响应中断时暂停工作并存储下PC去执行中断任务,执行完成后再返回原任务。
中断应当被快速响应(因为它们出现的非常频繁)。所以系统将中断向量(interrupt vector)(存储中断指针的表)放置在特定的低地址内存处,他们根据内存地址顺序索引,其中的指针指向相应的中断服务程序,根据中断请求对应返回这些指针。
另外,中断结构还应当保存当前被中断时的状态需信息(如PC,各种寄存器)等等,

基本的实现方式

CPU硬件有种有一条中断请求线(interrupt-request line),CPU会在执行完每条指令后对它进行感知。当CPU检测到有控制器产生了中断信号的时候,就根据中断信号到中断向量中查找中断处理程序(interrupt-handler routine)的地址。而中断处理器会储存任何会被终端操作更改的当前状态。中断操作完成以后调用return_from_interrupt指令返回之前CPU运行所在位置。

术语:
We say that the device controller raises an interrupt by asserting a signal on the
interrupt request line, the CPU catches the interrupt and dispatches it to the interrupt handler, and the handler clears the interrupt by servicing the device.
图示:
在这里插入图片描述

大部分CPU有两种中断请求线:nonmaskable interrupt(不可屏蔽中断)和maskable interrupt(可屏蔽中断)

  • 前者用于处理不可恢复的内存错误
  • 后者可以被CPUturn off,如果重要,不能被中断的指令序列正在CPU中执行。它往往被用于设备控制器

interrupt chaining

当在内存中连续建表的中断地址少于实际需要的中断地址时,常用的解决方法是中断链接(interrupt chaining)。它是一种链表结构,是过对长中断表和过长响应时间的折中。

中断优先等级(interrupt priority levels)

中断优先等级能使CPU选择性延迟(defer)低优先级中断而不用屏蔽所有中断,也今儿能优先执行高优先级中断。

2. 存储结构

3. I/O 结构

两种方式:synchronous(同步)和asynchronous(异步)异步IO调用callback时,它与主程序是并行的(通过多线程实现)。
当设备传输的数据量比较大时

Storage Structure

transprecision:内存,刷新频率低于DRAM,但访问变快,产生了一种不太确定的计算

OS Structure

  • Multiprogramming(多程序):多个程序共同进行,操作系统通过调度使CPU始终处于运行状态(同一时间只跑1个job,而它休息的时候则切换到其他job),是面向系统的特性
  • Multitasking/Timesharing(多任务):CPU在任务间快速切换,是面向用户的特性
    在这里插入图片描述
    双核及多核系统类似

调用syscall时,将mode bit设为0,进而进入kernel mode,中断处理完之后,将mode bit置回1,进而再返回

进程管理机制

在多线程中,每个线程都拥有自己的pc
OS将为进程管理提供以下操作:

  1. 产生/删除用户或系统进程
  2. 对进程的暂停(suspending)和恢复(resuming)
  3. 提供同步化(synchronization)的机制:将看起来同时进行的事务/进程确定顺序
  4. 提供沟通(communication)的机制,即不同的进程的操作与数据的交互
  5. 提供死锁的处理机制

存储管理

IO子系统

OS的IO子系统的目的就是隐藏硬件IO设备的各种奇怪特性,提供方便调用的接口,它负责:

  • IO的内存管理,包括buffering(数据传输的缓冲),cacheing和spooling(在一个任务输出时,重叠执行另一个任务的输入)
  • 通用的设备驱动接口
  • 针对特殊硬件设备的驱动
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值