操作系统概念学习笔记 3 存储结构和I/O结构

操作系统概念学习笔记 3

存储结构与I/O结构

存储结构

计算机必须在内存或RAM(随机访问内存random access memory)运行,内存是处理器可以直接访问的唯一大容量存储区域。

内存和处理器本身内置寄存器是cpu能直接访问的唯一存储介质。

指令load能将内存中的字移到cpu内部的寄存器中。而指令store能将寄存器的内容移动到内存。除了显式使用load和store,cpu可自动从内存中装入指令以执行。

内存比较小,并且是易失性存储设备,所以计算机系统提供辅助存储器作为内存的扩充。

对于I/O,每个I/O控制器都有寄存器来报存命令和所要传输的数据。通常,特殊的I/O指令允许在这些寄存器和系统内存之间进行数据传输。为了允许对这些I/O设备更方便的访问,许多计算机体系结构都提供内存映射I/O,内存地址的一块范围被单独分开,并映射到设备管理器。通过读写这些内存地址就能实现与设备寄存器之间的数据传输。

I/O结构

通用计算机系统有一个cpu和多个设备控制器组成,他们通过共同的总线连接起来。每个设备控制器负责特定类型的设备,可有多个设备与其连接。设备控制器维护一定量的本地缓冲存储和一定用途的寄存器。设备控制器负责在其所控制的外部设备与本地缓存之间进行数据传递。通常操作系统为每个设备控制器提供一个设备驱动程序。

为了开始I/O操作,设备驱动程序在设备控制器中装载适当的寄存器。相应的,设备控制器检查这些寄存器的内容以决定采取什么操作(如从键盘读取一个字符),控制器开始从设备向本地缓存传输数据,一旦数据传输完成,设备控制器会通过中断告诉驱动程序已完成操作,然后,驱动程序返回对操作系统的控制。

一旦I/O开始,就可能有两种行动过程。对于最简单的情况,开始进行I/O,在I/O完成后,控制权返回给用户进程,这种情况称为同步I/O。另一种可能,称为异步I/O,无须等待I/O完成,就将控制权返回给用户程序。接着I/O继续进行,同时其他系统操作照常进行。

等待I/O完成可以采用:wait指令使cpu空闲直到下一个中断开始。等待循环。

一种更好地选择是开始I/O之后,就继续执行其他操作系统或者用户程序代码。如果需要,系统调用就要允许用户程序等待I/O的完成。如果没有用户程序就绪可执行,操作系统也没有其他工作可做,那么需要wait或空闲循环以及能够在同一时刻跟踪多个I/O请求,为此,操作系统采用了设备状态表。

这种I/O中断驱动适合少量数据,DMA(直接内存访问)可以用于大量数据移动,设备控制器能在本地缓冲和内存之间传送一整块数据,而无需cpu的干预,且每块只产生一个中断,而不是一个字节一个中断。

时间: 2024-10-30 05:55:26

操作系统概念学习笔记 3 存储结构和I/O结构的相关文章

操作系统概念学习笔记 12 进程同步(二)管程

操作系统概念学习笔记 12 进程同步(二) 管程 基本的.高级的同步构造,即管程(monitor)类型. 使用: 管程类型提供了一组由程序员定义的.在管程内互斥的操作.管程类型的表示包括一组变量的声明(这些变量的值定义了一个类型实例的状态)和对这些变量操作的子程序和函数的实现.管程的类型表示不能直接为各个进程所使用.因此,在管程内定义的子程序只能访问位于管程内那些局部声明的变量和形式参数.类似的,管程的局部变量能被局部子程序访问. 管程结构确保一次只有一个进程能在管程内活动.不需要显示的编写同步

操作系统概念学习笔记 16 内存管理(二) 段页

操作系统概念学习笔记 16 内存管理 (二) 分页(paging) 分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的.分页避免了将不同大小的内存块匹配到交换空间上(前面叙述的内存管理方案都有这个问题,当位于内存中的代码和数据需要换出时,必须现在备份存储上找到空间,这是问题就产生了.备份存储也有前面所述的与内存相关的碎片问题,只不过访问更慢). 传统上,分页支持一直是由硬件来处理的.最近的设计是通过将硬件和操作系统相配合来实现分页. 基本方法 实现分页的基本方法设计将物理内存分

操作系统概念学习笔记 8 进程

操作系统概念学习笔记 8 进程 概念 进程 进程是执行中的程序,这只是非正式的说法.进程不只是程序代码,程序代码称为文本段(代码段),还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示.此外,进程还包括进程堆栈段(临时数据.函数参数.局部变量.地址)和数据段(包括全全局变量.还可能包括堆(leap),是在进程运行期间动态分配内存. 程序是被动实体,如存储在磁盘上包含一系列指令的文件内容(可执行文件),而进程是一个活动实体,他有一个程序计数器来表示下一个要执行的命令和相关资源集合. 虽然

操作系统概念学习笔记 5 操作系统管理简述

操作系统概念学习笔记 5 操作系统管理简述 进程管理 处于执行中的程序被称作进程. 进程需要一定的资源(包括cpu时间.内存.文件.I/O设备)来完成任务.这些资源可以在进程创建时分配给进程,也可以在执行时分配给进程.除了在创建时得到各种物理和逻辑资源外,进程还可以接受传输过来的各种初始化数据. 程序本身并不是进程,程序是被动的实体.而进程是活动的实体.进程是系统工作的单元. 单线程进程具有一个程序计数器来明确下一个执行的指令,直到进程终止. 在任何时候,最多只有一个指令代表进程被执行.因此,尽

操作系统概念学习笔记 15 内存管理(一)

操作系统概念学习笔记 15 内存管理(一) 背景 内存是现代计算机运行的中心.内存有很大一组字或字节组成,每个字或字节都有它们自己的地址.CPU根据程序计数器(PC)的值从内存中提取指令,这些指令可能会引起进一步对特定内存地址的读取和写入. 一个典型指令执行周期,首先从内存中读取指令.接着该指令被解码,且可能需要从内存中读取操作数.在指令对操作数执行后,其结果可能被存回到内存.内存单元只看到地址流,而并不直到这些地址是如何产生的(由指令计数器.索引.间接寻址.实地址等)或它们是什么地址(指令或数

操作系统概念学习笔记 2 系统中断

操作系统概念学习笔记 2 系统中断 概述 现代操作系统是中断驱动的.如果没有进程可执行,没有I/O设备可服务,没有用户可响应,那么操作系统就会安静的等待事件的发生. 事件的发生几乎总是通过中断或者陷阱来表征的. 陷阱(trap)或异常(exception)是因错误(如除0.非法访问内存)或者用户程序(执行操作系统服务)的特定请求所引起的软件生成中断. 对于中断,硬件可以随时通过系统总线向cpu发出信号,触发中断. 软件通过执行系统调用的特别操作触发中断. 对于每种类型的中断,操作系统都有一段独立

操作系统概念学习笔记 6 系统调用

操作系统概念学习笔记 6 系统调用 系统调用 系统调用(system call),通常用c或c++编写,对底层任务(如需直接访问硬件)可能以汇编语言指令的形式提供. 一个系统调用的例子: 编写一个从一个文件读取数据并复制到另一个文件的简单程序,则需要以下系统调用序列: 获取输入文件名: 屏幕输入提示 接收输入 获取输出文件名: 屏幕输入提示 接收输入 打开输入文件: 如果文件不存在,放弃 loop: 读取输入文件 写入输出文件 直到读取失败 关闭输出文件 将完成信息输出到屏幕 正常结束 然而,

操作系统概念学习笔记 4 操作系统结构和操作简述

操作系统概念学习笔记 4 操作系统结构和操作简述 操作系统结构 多道程序设计 多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法.也就是说,计算机内存中可以同时存放多道(两个以上相互独立的)程序,它们都处于开始和结束之间.只要有一个程序或任务可以执行,cpu就不会空闲. 但是不能提供与计算机系统直接交互的能力. 分时系统(多任务) 分时系统(多任务)是多道程序设计的延伸,在分时系统中,虽然cpu还是通过在作业之间的切换来执行多个作业,但是由于切换频率很高,用户可以

操作系统概念学习笔记 9 线程

操作系统概念学习笔记 9 线程 概述 单个进程可以包括多个控制线程. 线程 --一种CPU利用的基本单元,它是形成多线程计算机的基础. 线程是CPU使用的基本单元,它由线程ID.程序计数器.寄存器集合和栈组成.它与属于统一进程的其他线程共享代码段.数据段和其他操作系统资源. 一个传统重量级的进程只有单个控制线程,如果进程有多个控制线程,那么能同时做多个任务. 单线程与多线程 动机 一个应用程序通常是作为一个具有多个控制线程的独立进程实现的.如一个忙碌的网页服务器如果有多个(或数千个)客户并发访问