输入/输出(I/O)管理

主要从两方面进行讲解,一个是I/O管理概述、另一个是I/O核心子系统。
这里写图片描述

1 I/O管理概述

1.1 I/O设备

计算机系统中的I/O设备按使用特性可分为以下类型:
人机交互类外部设备、存储设备、网络通信设备。
按传输速率分类:低速设备、中速设备、高速设备
按嘻嘻交换的单位分类:块设备、字符设备。

1.2 I/O控制方式

设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,分别为:程序直接控制方式、中断驱动方式、DMA方式(直接存储器存取)、通道控制方式。

1.3 I/O子系统的层次结构

用户层I/O软件、设备独立性软件、设备驱动程序、中断处理程序、硬件设备。

2 I/O核心子系统

2.1 I/O子系统概述

I/O核心子系统提供的服务主要有:I/O调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理等。

2.2 I/O调度概念

I/O调度就是确定一个好的顺序来执行这些I/O请求。

2.3 高速缓存与缓冲区

包括磁盘高速缓存、缓冲区(单缓冲、双缓冲、循环缓冲、缓冲池)。

2.4 设备分配与回收

(1)设备分配概述:独占式使用设备、分时式共享使用设备、以SPOOLIng方式使用外部设备。
(2)设备分配的数据结构:设备控制表DCT、控制器控制表COCT、通道制表CHCT、系统设备表SDT。
(3)设备分配的策略:设备分配原则应根据设备特性、用户要求和系统配置情况。设备分配方式有静态分配和动态分配两种。设备分配算法:常用的动态设备分配算法有先请求先分配、优先级高者优先等。
(4)设备分配的安全性:是指设备分配中应防止发生进程死锁
(5)逻辑设备名到物理设备名的映射

2.5 SPOOLing技术(假脱机技术)

为了缓和CPU的高速性与I/O设备低速性之间的矛盾而引入了脱机输入/输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。SPOOLing的意思是外部设备同时联机操作,又称为假脱机输入/输出操作,是操作系统中采用的一项将独占设备改造成共享设备的技术。
SPOOLing系统的主要特点有:提高了I/O的速度;将独占设备改造为共享设备;实现了虚拟设备功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include<stdio.h> #include "dos.h" #include "stdlib.h" #include "conio.h" //PCB结构体 struct pcb{ int id; //进程序号 int ra; //所需资源A的数量 int rb; //所需资源B的数量 int rc; //所需资源C的数量 int ntime; //所需的时间片个数 int rtime; //已经运行的时间片个数 char state; //进程状态 struct pcb *next; } *hready=NULL,*hblock=NULL,*p; //hready,hblock分别为指向就绪和阻塞队列 typedef struct pcb PCB; int m,n,r,a,b,c,h=0,i=1,time1Inteval; //m为要模拟的进程个数,n为初始化进程个数 //r为可随机产生的进程数(r=m-n) //a,b,c分别为A,B,C三类资源的总量 //i为进城计数,i=1…n //h为运行的时间片次数,time1Inteval为时间片大小(毫秒) //建立一个PCB结构体型的空链表 PCB *increat(void) { PCB *head=NULL; //head=NULL; return(head); } //从链表起始地址开始输出该链表的内容 void disp(PCB *head) {PCB *p1; p1=head; AnsiString str2; if(head!=NULL) //链表非空 { do { str2+=" "; str2+=IntToStr(p1->id);str2+=" "; str2+=(p1->state);str2+=" "; str2+=IntToStr(p1->ra);str2+=" "; str2+=IntToStr(p1->rb);str2+=" "; str2+=IntToStr(p1->rc);str2+=" "; str2+=IntToStr(p1->ntime);str2+=" "; str2+=IntToStr(p1->rtime);str2+="\r\n"; p1=p1->next; }while(p1!=NULL); //不断输出进程的信息,直到链尾! } //if else { str2+="\t\t该 队 列 中 没 有 进 程!\r\n" ;} Form1->Memo1->Lines->Add(str2); } //将进程插入到链尾(包括就绪队列和阻塞队列) PCB *insert(PCB *head,PCB*pcb) //带两个指针形参:队列指针和当前进程PCB { PCB *pi,*p1; p1=head; pi=pcb; if (head==NULL) { head=pi; pi->next=NULL; } else { while(p1->next!=NULL) {p1=p1->next;} p1->next=pi; pi->next=NULL; } return(head); } //对进程进行初始化,建立就绪队阻塞队列。 void input() { AnsiString str1; m=StrToInt (Form1->Edit1->Text); //读取要模拟的进程总数给m n=StrToInt (Form1->Edit2->Text); //读取需初
脱机输入/输出(off-line i/o)方式是指在计算机系统中,数据的输入输出是通过脱机的设备进行的。脱机输入/输出方式有助于提高计算机系统的效率和灵活性。 脱机输入指的是将数据从离线介质(如磁带、磁盘等)传输到计算机系统中。在这种方式下,用户可以事先将需要处理的数据存储在脱机设备中,然后再通过特定的程序将数据输入到计算机系统中进行处理。这种方式可以减少用户与计算机之间的交互次数,提高数据的传输速度,同时也减少了计算机系统的负担。 脱机输出则是将计算机系统处理的结果保存到离线介质中。通过这种方式,用户可以将计算机系统处理的数据以文件的形式保存在脱机设备中,方便日后的查阅和使用。这样不仅可以节省计算机系统的存储空间,还可以减少计算机系统与外部设备之间的耦合度。 脱机输入/输出方式在实际应用中具有广泛的应用。例如,在批处理系统中,用户可以使用脱机输入/输出方式将大量的数据一次性输入到计算机系统中进行处理,提高处理的效率。同时,将处理结果以文件的形式保存在脱机设备中,方便用户进行后续的数据分析和处理。 总之,脱机输入/输出方式是一种便捷、高效的数据输入输出方式,可以提高计算机系统的效率和灵活性,方便用户的数据处理和管理

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值