操作系统复习(5)

简介: 操作系统复习

操作系统复习(4)https://developer.aliyun.com/article/1530636

七,输入/输出系统

7.1、硬件层面

1 I/O设备

IO设备大致分为两类:块设备和字符设备;

功能:完成具体的操作;(对磁盘的读写操作)

1.2 I/O控制器

接受CPU发来的命令,去控制I/O设备,为了将处理机能够从繁杂的设备控制事务中解脱出来;

设备控制器的基本功能:

接受和识别命令

数据交换

标识和报告设备的状态

地址识别

数据缓冲区

差错控制

操作系统不与设备打交道,只通过设备控制器来操作设备;

i/o设备的控制方式

  1. 轮询的方式
  2. 中断的方式
  3. DMA方式
  4. I/o通道方式

7.2中断

中断和陷入

1.中断

cpu对io设备发来的中断信号的一种响应.cpu暂停正在执行的程序,保护cpu现场 ,然后自动去执行该io设备的中断处理程序

2.陷入

cpu内部事件引起的中断,比如程序出错

中断向量表和中断优先级

1.中断向量表

通常会为每种设备配以相应的中断处理程序

表结构

中断号 中断处理程序的入口地址
2.中断优先级

中断请求的紧急程度是不同的,所以要为他们设置不同的优先级

处理多中断源的方式

这是为了应对当处理机正在处理一个中断的时候又来了另一个中断.的处理

1.屏蔽中断

处理一个中断的时候屏蔽其他中断

2.嵌套中断

1.多个中断一同请求,优先响应高优先级的中断,2.高优先级中断请求可以抢占正在运行的低优先级中断的处理机

中断处理程序

1.测试是否有未响应的中断信号
2.保护被中断进程的cpu现场
3.转入相应设备的中断处理程序
4.处理中断
5.恢复cpu现场环境后退出中断

7.3 设备驱动程序

驱动程序操控的设备里面需要有嵌入式程序

是的,驱动程序操控的设备通常内置有嵌入式程序(也称为固件),用于控制和管理设备的功能和行为。

嵌入式程序是一种运行在设备内部的软件,通常存储在设备的非易失性存储器中,例如闪存或EEPROM。这些程序由设备制造商开发,并在生产过程中烧录到设备中。嵌入式程序包含了设备的驱动程序、操作系统、引导加载程序和其他必要的软件组件。

驱动程序与嵌入式程序进行交互,向设备发送指令和参数,以控制设备的工作模式、配置设备的功能、读取和写入设备的数据等。嵌入式程序接收驱动程序发送的指令和参数,并执行相应的操作,控制设备的硬件部分。

嵌入式程序还负责设备的初始化、启动、状态监测、错误处理等任务。它们可能实现设备间的通信协议,处理输入和输出数据,执行特定的算法,以及提供设备的各种功能。

因此,驱动程序和嵌入式程序是紧密关联的,共同确保设备能够按照预期进行操作。驱动程序在计算机系统上运行,与操作系统和应用程序交互,控制和管理设备。而嵌入式程序在设备内部运行,控制和管理设备的硬件和底层功能。

设备驱动程序的功能

  1. 接收由与设备无关的软件发来的命令和参数,并将命令中的抽象io请求转换为与设备相关的低层操作序列(比如read命令转换为具体的该怎么读)
  2. 检查用户io的合法性
  3. 发出io命令 忙则等待
  4. 及时响应由设备控制器发来的中断请求,调用相应的中断处理程序进行处理

设备处理方式

  1. 为没类设备设置一个进程
  2. 整个系统设置一个io进程
  3. 不设置专门的设备处理进程

设备驱动执行过程

1.将抽象要求转换成具体要求
2.校验服务请求
3.检查设备的请求

设备处于就绪状态才能启动这个设备

4.传送必要的参数
5.启动io设备

7.4 与设备无关的io软件

需要实现物理设备名到逻辑设备名的映射

使用逻辑设备表

7.5用户层io软件

系统调用和库函数

系统调用是应用程序取得os所有服务的唯一途径

早期的系统调用是以汇编的形式提供的,现在C语言提供了与系统调用相对应的库函数

比如java打印出helloworld就调用了C语言中关于控制台输出的库函数

假脱机技术

SPOOLing 技术

特点:

提高了io速度

将独占设备改造为共享设备

实现了虚拟设备的功能

守护进程

守护进程是允许使用该独占设备的唯一进程,所有其他进程都不能直接使用该设备,而只能将对该设备的使用要求写入一份文件中,并将文件放入假脱机目录找那个,由守护进程按照目录中的文件,依次完成各进程对该设备的请求

7.6 缓冲

  1. 缓和cpu和i/o设备间速度不匹配的矛盾
  2. 减少对cpu中断的哦频率,
  3. 解决数据粒度不匹配的问题
  4. 提高cpu和io设备之间的并行性

双缓冲区和单缓冲区

经常用来解决互斥访问缓冲区和双向通信问题的

环形缓冲区

八,文件系统

文件逻辑结构

流式文件以字节为单位

记录式文件(有结构文件)

顺序文件
索引文件
索引顺序文件

2.文件目录

与文件管理系统和文件集合相关联的是文件目录。

1)文件控制块

与进程管理一样,为实现目录管理,操作系统中引入了文件控制块的数据结构。

文件控制块(FCB)是用来存放控制文件需要的各种信息的数据结构,以实现“按名存取”。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个FCB关存放在文件目录中,成为目录项。

fcb包含的信息

(1)基本信息,如文件名、文件的物理位置、文件的逻辑结构、文件的物理结构等。

(2) 存取控制信息,如文件存取权限等

索引结点

除了文件名之外的所有信息都放到索引结点中,每个文件对应一个索引结点。目录项中只包含文件、索引结点指针,因此每个目录项的长度大幅减少。

目录结构

(1)单级目录结构:

在整个文件系统中建立一张目录表,每个文件占一个目录项。

(2)两级目录结构:

将文件目录分成文件目录和用户文件目录两级。

3. 共享

1)文件共享

(1)基于索引结点的共享方式(硬链接)

索引结点中设置一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数。若count =

2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。

若某个用户“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点count的值减1。

若count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。

(2)基于符号链的共享方式(软链接)

为使用户B能共享用户A的一个文件F,可以由系统创建一个LINK 类型的新文件,也

取名为F,并将文件F写入用户B的目录中,以实现用户B的目录与文件F的链接。

结构、文件的物理结构等。

(2) 存取控制信息,如文件存取权限等

索引结点

除了文件名之外的所有信息都放到索引结点中,每个文件对应一个索引结点。目录项中只包含文件、索引结点指针,因此每个目录项的长度大幅减少。

目录结构

(1)单级目录结构:

在整个文件系统中建立一张目录表,每个文件占一个目录项。

(2)两级目录结构:

将文件目录分成文件目录和用户文件目录两级。

3. 共享

1)文件共享

(1)基于索引结点的共享方式(硬链接)

索引结点中设置一个链接计数变量count,用于表示链接到本索引结点上的用户目录项数。若count =

2,说明此时有两个用户目录项链接到该索引结点上,或者说是有两个用户在共享此文件。

若某个用户“删除”该文件,则只是要把用户目录中与该文件对应的目录项删除,且索引结点count的值减1。

若count>0,说明还有别的用户要使用该文件,暂时不能把文件数据删除,否则会导致指针悬空。

(2)基于符号链的共享方式(软链接)

为使用户B能共享用户A的一个文件F,可以由系统创建一个LINK 类型的新文件,也

取名为F,并将文件F写入用户B的目录中,以实现用户B的目录与文件F的链接。

相关文章
|
5月前
|
存储 算法 安全
|
4月前
|
存储 缓存 算法
操作系统复习(3)
操作系统复习
28 2
|
4月前
|
存储 算法 调度
操作系统复习(4)
操作系统复习
44 2
|
4月前
|
消息中间件 算法 Shell
操作系统复习(1)
操作系统复习
42 2
|
4月前
|
Rust 算法 安全
操作系统复习(2)
操作系统复习
32 1
|
5月前
|
存储 算法 Unix
|
5月前
|
存储 缓存 算法
|
存储 缓存 算法
操作系统笔记【面试】
操作系统笔记【面试】
76 1
|
自然语言处理 算法 Unix
小白如何学操作系统?(一)
很多读者问我如何学习操作系统?推荐几本操作系统可以看的书?操作系统都需要学什么?有哪些视频可以看吗?下面我就针对性的对这些问题做一下我自己的阐述。
小白如何学操作系统?(一)
|
缓存 程序员 编译器
考研操作系统【1.1 操作系统的基本概念】
考研操作系统【1.1 操作系统的基本概念】
149 0