操作系统期末复习要点总结
- 格式:docx
- 大小:173.79 KB
- 文档页数:4
系统调用(SYSTEM CALL):实现过程
当编程人员给定了系统调用名和参数之后,由一个类似于硬件中断处理的中断处理机构完成-陷入处理机构。它是在系统中为控制系统调用服务的机构。
当用户使用系统调用时,产生一条相应的指令(陷入指令,trap指令),CPU在执行到该指令时发生相应的中断,发出有关信号给该处理机构,并启动相应的处理程序来完成该系统调用所要求的功能。
1.设置系统调用号和参数。
a)调用号作为指令的一部分(如早期UNIX),或装入到特定寄存器里(如:DOS 的int 21H,AH=调用号。)
b)参数装入到特定寄存器里,或内存区域
2.执行trap(INT)指令:入口的一般性处理,查入口跳转表,跳转到相应功能的过程。
a)保护CPU现场(将PC与PSW入栈),改变CPU执行状态(处理机状态字PSW 切换,地址空间表切换)
b)将参数取到核心空间
3.执行操作系统内部代码;
4.执行iret指令:将执行结果装入适当位置(类似于参数带入),恢复CPU现场(以栈顶内容置PSW和PC)。
进程通信的几种方法
消息队列:
消息队列:每个进程有一个与之相关的消息队列;
发送者:指定发送的每个消息的类型,类型可以被接收者用作选择原则,接收者可以按先进先出的顺序接收消息,或者按类型接收。
当进程向一个满队列发送消息时,它将被挂起;
当进程从一个空队列读取时也会被挂起。
消息:一段文本。消息格式设计与应用环境和要求有关
固定长度消息:可以减小处理和存储的开销
基于文件的:传送大量的数据
可变长度消息:灵活
消息的一般格式
消息头:源标识、目的标识、长度域、类型域、控制域
消息体
共享内存:
–系统在存储区中划出一块共享存储区,各进程间可通过对共享存储区中的数据进行读或写来实现通信。
–需要通信的各个进程把共享存储区附加到自己的地址空间中,然后,就像读写普通存储器一样对共享区中的数据进行读或者写。
–如果用户不需要某个共享存储区,可以把它取消。
相关函数
–shmget(key, size, flag)
–shmat(shmid, addr, flag)
–shmdt(viraddr)
–shmctl(shmid, cmd, buf)
共享存储区机制
–当进程要利用共享存储区与另一进程进行通信时,须先利用系统调用shmget( )建立一块共享存储区,并提供该共享存储区的名字key和共享存储
区以字节为单位的长度size等参数。
–若系统中已经建立了指名的共享存储区,则该系统调用将返回该共享存储区的描述符shmid;若
–尚未建立,便为进程建立一个指定大小的共享存储区。
线程的实现方法
用户级线程(ULT,User Level Thread)
用户线程的维护由应用进程通过线程库来完成;
线程库:应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线程,无需内核支持。
特点:
内核不了解用户线程的存在;
用户线程切换不需要内核特权;
速度快。线程的创建和调度由应用软件内部进行,无需用户态/核心态切换,所以速度特别快。
优点
调度由应用软件内部进行,无需用户态/核心态切换,所以速度特别快。
调度是应用程序特定的:可以选择最好的算法
ULT可运行在任何操作系统上(只需要线程库)
缺点
一个线程发起系统调用而阻塞,同一个进程的其它线程都被阻塞(因为任何时刻只允许一个线程访问内核)
一个多线程应用程序不能利用多处理技术。内核一次只把一个进程分配给一个处理器,因此一次进程中只有一个线程可以执行
内核线程(KLT,kernel-level thread)
有关线程的所有管理工作都在OS内核完成,应用程序部分没有线程管理的代码,只有一个到内核线程的API
线程切换由内核完成;
内核维护进程和线程的上下文信息
优点
一个线程发起系统调用而阻塞,不会影响其它线程的运行,内核可以继续调度调度同一个进程中的另一个线程。
内核可以将同一进程中的多个线程调度到多个处理器上
缺点
由于有内核的参与,需要额外开销
线程之间的切换需要内核的模式切换。
在文件系统中,文件目录的基本功能是什么?
将文件名转换成该文件在外存的物理位置,实现文件名与磁盘块之间的映射
说明用索引结点方式如何实现目录,并说明这种方式的优点。
将顺序文件中的记录按照某种标准分组,如可将打头字母相同的记录分为一组,可按每小时或固定长度的时间将记录分组等
在查找时,首先搜索索引,查找关键字值等于目标关键字或者位于目标关键字值之前且最大的索引,然后在该索引的指针所指的主文件中的位置处开始搜索。
好处:极大减少访问单个记录的时间,同时保留了文件的顺序特性。可以按顺序处理主文件中的记录,直到遇到一个指向备份文件的指针,然后继续访问备份文件中的记录,直到遇到一个空指针,然后恢复在主文件中的访问。
Unix的i节点的定义,使用i节点的好处
为了加速对文件目录的查找,在Unix系统中,将文件名和其它文件说明信息分开,由文件说明信息形成一个称为索引节点的数据结构,而相应的文件目录项只由文件名和对应的索引节点号组成。
??好处:同索引优点(按块分配可以消除外部碎片,按大小可变的分区分配可以提高局部性。)
✓用户进程层执行输入输出系统调用,对I/O数据进行格式化
✓独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配;