目录
16.分区式存储管理、分页存储管理与分段存储管理的原理及特点
19.虚拟存储器(实现原理、理论依据、物理基础、容量制约因素)
1.设置操作系统的目的
有效性: 提高系统的资源利用率; 提高系统的吞吐量;
方便性: 方便用户;
可扩展性: 开放性;
2.操作系统的定义
操作系统是 一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
3.操作系统功能与特征
特征 —— 并发性、共享性、虚拟性、异步性
功能 —— 处理机管理、存储器管理、设备管理、文件管理、操作系统与用户之间的接口。
4.多道程序设计与并发性
进程的含义
进程是程序的第一次执行;
进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位;
为了使程序能够并发执行,且为了对并发执行的程序加以描述和控制,便引入了“进程”。
进程的特征:
结构特征 —— 由程序段、相关数据段、PCB构成进程实体;
动态性
并发性
独立性
异步性
5.进程控制块的内容和作用
作用:使一个在多道运行环境下不能独立运行的程序,成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程,即,OS 根据 PCB 来对并发执行进程进行控制和管理。
进程控制块内信息:进程标识符、处理机状态、进程调度信息、进程控制信息。
6.引起进程创建的事件
用户登录、作业调度、提供服务、应用请求
7.进程的3种基本状态及其转换
就绪状态、执行状态、阻塞状态
8.线程的定义,引入线程的目的,进程与线程的主要区别
比进程更小的能独立运行的基本单位 —— 线程;
引入目的:为了减少程序在并发执行时所付出的时空开销,使OS 具有更好的并发性;
区别:
调度性:线程作为调度和分派的基本单位,而进程作为拥有资源的基本单位;
并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,使得操作系统具有更好的并发性,从而能更加有效地提高系统资源的利用率和系统的吞吐量;
拥有资源:一般而言,线程自身不会拥有系统资源,但它可以访问其隶属进程的资源,即一个进程的代码段、数据段及所拥有的系统资源;
系统开销:操作系统所付出的开销明显大于线程创建或撤销时的开销。
9.信号量与 pv操作机制及其作用 —— 实例分析
10.处理机的分级调度
作业调度
进程调度
中程调度
11.作业调度和进程调度的主要任务
作业*:
把指令、程序和数据按照预先确定的次序结合在一起,并提交给系统的一个组织单位;
用户交给系统的具有独立功能的任务;
作业:程序和数据 + 作业说明书;
在批处理系统中,以作业为基本单位从外存调入内存;
作业调度:
根据作业控制快(JCP)中的信息,审查系统是否满足用户作业的资源需求,以及 按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程插入就绪队列,准备执行。
进程调度:
保存处理机的现场信息;
按某种算法选取进程;
将处理器分配给进程;
12.进程调度方式及其特点
非抢占方式:
实现简单,系统开销小
抢占方式:
可以防止一个进程长时间占用处理机,能为大多数进程提供更公平的服务,特别是能满足对响应时间有特别要求的实时任务要求。但所付出的开销较大。
13.常用的调度方法
先来先服务调度算法:
按作业来到的先后次序进行调度。此算法优先考虑在系统中等待时间最长的作业,而不管其要求运行时间的长短。
短作业优先调度算法(SJF):
此算法总是优先调度要求运行时间最短的作业。
最高优先级优先调度算法:
此算法根据确定的优先级来选取作业,每次总是优先选择选择优先级最高的作业。
14.如何确定进程的优先级
静态优先数:
按进程类型:系统进程的优先级 高于 用户进程的优先级
按进程使用的资源:进程使用的资源越多,其优先级越低,反之越高
按进程的估计运行时间:进程的估计运行时间越长,其优先级越低,反之越高
由用户指定:有些系统可以按收费标准或紧急程度设置不同的优先级别**,可由用户指定
动态优先数:
在系统创建进程时,根据系统资源的使用情况和进程当前的特点确定一个优先数,然后在进程运行过程中再根据情况的变化调整进程的优先数。
15.引起死锁的原因、必要条件及解决死锁的方法
根本原因:
系统能够提供的资源数 少于 需要该资源的进程数(系统资源不足)
对资源的分配策略(请求顺序)不当;
进程推进顺序非法;
必要条件:
互斥条件:进程对其所要求的资源进行排他性控制,即依次只有一个进程可以使用一个资源
不剥夺条件:进程所获得的资源在被释放之前,不能被其它进程强行剥夺
占有且等待条件:进程每次申请其所需要的一部分资源,在进程等待分配其它资源的同时,可以占有已分配的资源
环路条件:在发生死锁时,必然存在一个进程资源的循环等待链
解决死锁的方法:
1)死锁的预防:
资源的静态分配策略 —— 破坏占有且等待条件
资源的资单请求方式分配 —— 破坏占有且等待条件
有序资源分配策略 —— 破坏环路条件
2)死锁的避免:
为了避免可能产生的死锁,在进行资源分配时,应采用某种算法来预测是否有可能会发生死锁,若存在可能性,就拒绝企图获取资源的请求。
3)死锁的检查与恢复:
当系统为进程分配资源时,若未采取任何限制性措施来保证不进入死锁状态,则系统必须提供检测和解除死锁的手段:
a. 保存有关资源的请求和分配信息;
b. 提供一种算法,以利用这些信息来检测系统是否已经进入死锁状态;
算法实例:
16.分区式存储管理、分页存储管理与分段存储管理的原理及特点
分区式存储管理:
把主存空间静态地或动态地划分为若干个大小不等的区域,每个作业分配一片连续的存储空间,程序一次性整体装入。
分页式存储管理:
把作业地址空间分成固定大小的页,而把把存储空间分成与页同等大小的存储块,称为页架。一个作业的地址空间客户以分配到不连续的地址块中。
特点:
解决了碎片问题,提高了存储空间的利用率
但作业大小仍然受到内存可用页面数的控制
分段式存储管理:
用户程序按信息的逻辑关系分为段,存储分配时,以段为单位分配一片连续的存储空间。(以段为单位进行存储管理)
优点:
便于查询模块化处理
便于处理动态的数据结构
便于动态链接
便于共享分段
可以实现多段式虚拟存储器,“扩充”主存容量
缺点:
和分页管理一样,处理器要为地址变换花费时间,要为表格提供附加存储空间,这使操作系统复杂化
为满足分段的动态增长和减少外零头,要采用拼接手段
在辅存中管理不定长度的分段困难许多,如:存储位置不易确定,存储空间利用率不易提高
17.常用的分区分配算法
(1)最佳适应算法(BFA)
为一个作业选择分区时总是寻找大小最接近作业所要求的存储区域,使得分区后剩余部分最小。存储空间中所有的空白区域按其大小递增的顺序链接起来。
(2)最坏适应算法(WFA)
在为作业选择存储区域时,总是寻找最大的空闲区。空闲区以大小递减的顺序链接起来。
(3)首次(最先)适应算法(FFA)
在为作业分配存储区域时,从空闲区链的始端开始查找,选择第一个满足请求的空闲区,不管其有多大。每个空闲区按照其存储空间在中地址递增的顺序链接在一起。
18.地址重定位与分页地址变换过程
地址重定位:
将程序使用的逻辑地址转换为主存空间的物理地址的工作
分页地址变换过程
19.虚拟存储器(实现原理、理论依据、物理基础、容量制约因素)
实现原理:
当一个用户(或进程)的程序调入系统运行时,只装入这个用户程序的一部分就启动运行。在运行的过程中,若发现要访问的页不在内存,就向系统发出中断请求,系统处理中断时,把要求访问的页调入内存,然后继续运行。
理论依据:
程序执行的局部性理论。在一段时间内,程序的执行总是集中地访问程序中的某一部分而非均匀地对程序所有的部分进行访问。变现形式:时间局部性、空间局部性
物理基础:
相当容量地辅存、一定容量的主存、动态地址转换机制
容量制约因素:
虚拟存储器的最大容量由计算机的地址结构确定的,受辅助存储器容量的限制。
20.碎片(零头)问题与移动技术
内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。
为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。该技术称为紧缩(或叫拼凑)
21.常用的页面淘汰算法
(1)最佳置换算法、先进先出算法;
(2)最近最久未使用(LRU)置换算法;
(3)Clock置换算法;
(4)其它置换算法:1.最少使用(LFU)置换算法;2.页面缓冲算法(PBA);
22.设备的分类
(1) 按信息交换的单位分类
块设备,磁盘为典型的块设备
字符设备,典型设备有打印机、交互式终端
(2) 按设备的共享属性分类
独占设备 —— 在一段时间内只允许一个用户(进程)访问的设备,如:打印机、卡片输入机等。系统一旦将这类设备分配给某一作业,就在作业整个运行时间都为它独占。
共享设备 —— 允许若干个用户同时共享使用的设备,如:磁盘、磁带等。
虚拟设备 —— 为提高设备的利用率,通过Spooling技术把一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用,用来模拟独占设备的那部分共享设备称为虚拟设备。
23.I/O 传输控制方式
程序 I/O 方式
中断驱动 I/O 控制方式
DMA控制方式
I/O 通道控制方式
24.缓冲及引入缓冲的原因
为了缓冲CPU和I/O设备不匹配的矛盾,提高CPU和I/O设备的并行性,I/O设备在处理机交换数据时都用了缓冲区。
缓和CPU与I/O设备间速度不匹配的矛盾;
减少对CPU的中断频率,放宽对CPU中断响应时间的限制;
提高CPU和I/O设备之间的并行性;
易于实现I/O的重定向;
25.设备独立性及其好处
含义:应用程序独立于具体使用的物理设备。
好处:
方便用户编程;
提高设备利用率;
增加了系统的一致性与适用性;
26.虚拟设备与Spooling技术(作用)
通过Spooling技术可将一台物理I/O设备虚拟为多台逻辑I/O设备,允许多个用户共享一台物理I/O设备。
提高I/O 的速度;
将独占设备改为共享设备;
实现了虚拟设备功能;
27.常用的磁盘移臂调度算法
先来先服务(FCFS)
最短寻道时间优先(SSTF)
扫描算法(SCAN)
循环扫描算法(CSCAN)
28.文件的逻辑结构和存取方法
文件的逻辑结构分为两大类:
有结构文件 —— 由一个以上的记录构成的文件,又称为记录式文件;
记录是具有特定意义的信息单位,其包含记录在文件中的相对位置、记录名、记录的属性等信息组成。记录式文件中,每一个记录都有一项信息,用来唯一标识相应的记录,将各个记录区分开来,我们称这个信息为主键。一个记录中的任一数据项或若干数据项的组合均可作为记录键,除主键外的其他键成为次键。
无结构文件 —— 由字符流构成的文件,又称为流式文件;
无结构的字符流式文件是相关的有序字符的集合,文件长度即为所含字符数。流式文件不分成记录,而是直接由一连串信息组成。对于流式文件而言,它是按信息的个数或以特殊字符为界进行存取的。常见的采用这种结构的有源程序文件和可执行文件。
存取方法 —— 逻辑上的文件信息最终都要按照一定存取方法存储到物理设备中,文件系统将文件信息存储到存储设备中的方式,取决于文件的逻辑结构和存取内容及目的
1)顺序存取:按照文件的逻辑地址依次顺序存取。
2)随机存取:用户按照记录的编号进行存取,也称为直接存取或立即存取。这种方式下,根据存取命令把读、写指令直接移动到读/写处进行操作。
3)按键(索引)存取:根据给定记录的键进行存取。给定键后,首先搜索该键在记录中的位置,然后进一步搜索包含该键的记录,在含有该键的所有记录中查找所需记录,当搜索到所需记录的逻辑位置后,再将其转换到相应的物理地址进行存取。
29.记录的成组与分解*
原因:磁盘块大小是预先划分好,大小固定的,而逻辑记录的大小是由用户文件性质决定的,不一定和块的大小一致。
记录的成组:把若干个逻辑记录存入一个块的工作称为“记录的成组”。每个块中逻辑记录的个数为“块因子”
记录的分解:记录成组的逆过程。进程是先从磁盘中找到记录所在的块,并将本块读入主存缓冲区,再从缓冲区取出所需要的记录送到用户工作区。如果用户所需的记录已经在缓冲区中,则不需要启动外设读块信息,这也可以提高系统工作效率。
30.文件的物理结构及特点
-
文件的物理结构是指文件在辅助存储器上存储的结构形式,其和文件的存取方法有密切关系。文件物理结构的优劣,直接影响到文件系统系统的性能。
文件在逻辑上可以看成是连续的,但在物理介质上存放时可以有多种形式。目前常用的文件物理结构有顺序结构文件、链接结构文件、索引文件、Hash文件。
1)顺序结构文件
-
把逻辑文件的信息顺序地存储到连续的物理盘块中,这样形成的文件称为顺序文件。这种文件保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序地一致性。
优点:
<1>管理简单:一旦知道文件存储的起始块号和文件块数,就可以立即找到所需的文件信息。
<2>顺序存取速度快:要获得一批相邻的记录时,其存取速度在所有文件物理结构中是最快的。
缺点:
<1>要求连续存储空间:如同内存的连续分配一样,可能形成许多存储空间的碎片。
<2>必须事先知道文件的长度,才能为该文件分配合适的连续存储空间。
2)链接结构文件
-
链接结构的特点是使用指针(也称为链接字)来表示文件中各个记录之间的关联。在链接结构文件中,一个逻辑上连续
的文件,可以存放在不连续的存储块中,每个块之间用单向链表链接起来。为了使系统能方便地找到逻辑上连续的下
一块的物理位置,在每个物理块中设置一个指针,指向该文件的下一个物理块号,使得存放同一个文件的物理块链接
成一个队列,该结构为链接文件。
优点: <1>不要求为文件分配连续的存储空间,一定程度上解决了空间碎片问题,提高了存储空间利用率因为采用链表的
思想,文件中记录的增删工作比较容易实现。
<2>因为采用链表的思想,文件中记录的增删工作比较容易实现。
缺点:
<1>只适合于顺序存取,不便于直接存取,为了找到某个物理块的信息,必须从头开始,逐一查找每个物理块,直到找到为止,因此降低了查找速度。
<2>在每个物理块中都要设置一个指针,占去一定的存储空间
3)索引结构文件
-
索引文件是实现非连续存储的另一种办法,适用于数据记录保存在随机存取存储设备上的文件。这种结构的组织方式要求为每一个文件建立一张索引表,其中每个表目指出文件逻辑记录所在的物理块号,索引表指针由FCB给出。文件很大时,索引表也将很大,需要占用多个盘块。管理多个盘块的索引表有两种方法:一是将存放索引表的盘块用指针链接起来,称为链接索引。链接索引需要顺序地读取索引表各索引表项。因此,与链接文件相似,读取后面的索引表项需进行多次磁盘I/O操作;另一种是采用多级索引,即为多个索引表再建立一个索引表(称为主索引表),形成二级索引。如果二级索引的主索引表仍然不能存放在一个盘块中,就需要三级索引。
优点:
是链接结构的一种扩展,具有链接结构的优点,还克服了只能作顺序存取的缺点,具有直接读写任意一个记录的能力,便于文件的增加和删除,可以方便地进行随机存取。
缺点:
<1>增加了索引表的空间开销和查找时间,索引表的信息量甚至可能远远超过文件记录本身的信息量。
<2>在存取文件时首先查找索引表,增加了一次读盘操作,从而降低了文件访问的速度。都但是可以采取补救措施,例如在文件读取前,事先把索引表放在内存中,这样以后的文件访问可以直接在内存中查询索引表,以加快访问速度。
4)Hash文件
-
在直接存取设备上,文件的物理结构还有一种组织方式,即采用寻址结构。在这种方式中,把记录中的关键码通过某种计算,转换为记录的相应地址。这种存储结构是通过指定记录在存储介质上的位置进行直接存取的,记录无所谓次序。一般来说,用于地址的总数比可能的关键码总数要少得多,所以不会出现一一对应关系。那么就有可能存在着不同的关键码计算后,得到了相同的地址,这种现象称为“地址冲突”。而这种通过对记录的关键码施加变换而获得相应地址的变换方法,通常称为Hash方法,或称为散列法、杂凑法。利用Hash方法建立的文件结构称为Hash文件。这种物理结构适用于不宜采用连续结构,记录次序比较混乱,又需要快速存取的情况。例如,一个存取学生信息的文件,将班级信息作为索引,凡班级相同的同学作为一个数据,这样建立的Hash表可以用来快速查找同一班级学生的信息,加快了查询速度。
优点:
查找不需要做索引,可以快速地直接存取。
缺点:
当地址冲突发生时,需要有解决冲突的方法,这称为溢出处理技术,也是设计Hash文件需要考虑的主要内容。常用
的溢出处理技术有线性探测法、二次探测法、拉链法、独立溢出区法等。
31.文件的基本操作及作用
-
需要动手操作指令进行熟悉,暂略。
32.文件目录管理的作用
文件目录也是一种数据结构,用于标识系统文件中文件及其物理地址,供检索时使用。
33.操作系统接口的类型、形式和作用
用户接口
字符显示式联机用户接口
又称联机命令接口 用户通过命令语言实现对作业的控制,以及取得操作系统的服务 命令语言:以命令为基本单位,指示操作系统完成特定的功能;由诸多命令组成了命令集,完整的命令集包含了操作系统提供给用户的全部功能。
<span style="background-color:#333333"><span style="color:#b8bfc6">命令行方式
批命令方式
交互方式:用户输入命令、终端处理程序接收命令、在屏幕上显示反馈信息</span></span>
图形化联机用户接口
又称图形用户接口 WIMP技术:该技术将窗口、图标、菜单、鼠标和面向对象技术等集成在一起,引入形象化的各种图标,将系统的各项功能、各种应用程序和文件直观、逼真地表示出来,形成一个图文并茂的操作环境 脱机用户接口
联机命令类型
<span style="background-color:#333333"><span style="color:#b8bfc6">系统访问
磁盘操作命令
文件操作命令
目录操作命令
其他命令
输入输出重定向(PROGRANG > FILE2)
管道连接(Command1 | Command2|··|Commandn )
过滤命令 (find /N “erase” (文件路径名))
批命令(“*.BAT”)</span></span>
联机命令接口实现
实现联机命令接口需要:
<span style="background-color:#333333"><span style="color:#b8bfc6">键盘终端处理程序
命令解释程序</span></span>
键盘终端处理程序
<span style="background-color:#333333"><span style="color:#b8bfc6">(1)接收用户从终端上打入的字符。
面向字符方式:不做任何修改送给
面向行方式 :接收的字符暂存在行缓冲中,并可对行内字符进行编辑,尽在收到行结束符后,才将一行正确的信息送给命令解释程序
(2)字符缓冲,用于暂存所接收的字符(暂存字符,降低终端处理器的频率)
专用缓冲:每个终端设置一个缓冲区,暂存键入的一批字符
公用缓冲:将所有的空缓冲区链接成一个空的缓冲区,先申请一空缓冲区来接收输入字符
(3)回送显示(终端处理程序将字符送往屏幕显示)
硬件实现:直接会先,速度快,但不灵活
软件实现:灵活控制,系统忙时回显慢
(4)屏幕编辑
删除字符、删除行、插入键、移动光标等
(5)特殊字符处理
特殊字符不缓冲 ,直接产生作用</span></span>
MS-DOS解释程序
命令解释程序主要功能:解释命令并执行命令
主要作用
<span style="background-color:#333333"><span style="color:#b8bfc6">在屏幕上给出提示符,
等用户键入命令,然后读入该命令,
识别命令,
再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,
并将处理结果送屏幕上显示。 若
用户键入的命令有错,而命令解释程序未能予以识别,或在执行中间出现问题时,则应显示出相应出错信息。</span></span>
组成
<span style="background-color:#333333"><span style="color:#b8bfc6">常驻部分:包括一些中断服务子程序等
初始化部分:在启动时获得控制权,处理 AUTOEXEC.BAT文件,决定应用程序装入的基地址
暂存部分:主要是命令解释程序,并包含了所有内部命令处理程序、批文件处理程序一级装入和执行外部命令的程序</span></span>
工作流程 在这里插入图片描述 Shell解释程序
UNIX的Shell作为操作系统的最外层,可作为命令语言,也为用户提供使用操作系统的接口,用户利用该接口与机器交互
Shell还包括了Shell命令截止程序,用于对从标准输入或文件中读入的命令进行解释执行 系统调用
系统调用提供了用户程序和操作系统之间的接口,是应用程序取得操作系统服务的唯一途径
需要的原因
<span style="background-color:#333333"><span style="color:#b8bfc6">保护操作系统代码运行不受应用程序破坏
保护各个应用程序不受其他应用程序破坏</span></span>
本质 应用程序请求OS内核完成某项功能时的一种过程调用 系统态和用户态
OS内核 通常将一些与硬件紧密相关的模块、各种常用设备的驱动程序以及运行频率较高的模块、都安排在紧靠硬件的软件层次中,将它们常驻内存
系统态 又称管态、内核态。运行OS内核。可执行特权指令 用户态 又称目态,运行应用程序,只能执行非特权指令 特权指令和非特权指令
特权指令
<span style="background-color:#333333"><span style="color:#b8bfc6">只允许操作系统内核使用
内存空间的访问范围基本不受限制
特殊指令,如启动外部设备、设置时钟、关中断、转换执行状态等
非特权指令
应用程序能使用的指令
不能对系统中的硬件和软件直接进行访问
对内存的访问范围也局限于自己的用户空间</span></span>
由硬件实现 若应用程序使用特权指令则会发出权限出错信号,操作系统捕获到这个信号后将转入相应错误处理程序,将终止应用程序运行 环保护机构
<span style="background-color:#333333"><span style="color:#b8bfc6">一种由CPU提供的硬件机制
低编号的环具有高优先权,可执行特权指令,运行内核,即内核态
最大编号的环具有低优先权,只能执行非特权指令,运行应用程序,即用户态。
在这里插入图片描述</span></span>
系统调用与一般过程调用的区别
<span style="background-color:#333333"><span style="color:#b8bfc6">(1)运行在不同的系统状态。
(2)状态转换:通过软中断进入,不同的系统采用各自的特定中断号:MS-DOS采用INT 21H,Linux采用80h。
(3)返回问题。当调用进程仍具有最高优先级时,才返回到调用进程继续执行;否则,将引起重新调度,以便让优先权最高的进程优先执行。
(4)嵌套调用。系统调用也可以嵌套进行</span></span>
34.处理机的工作状态及特权指令
工作状态:
系统态 和 用户态。操作系统在系统态运行,而应用程序只能在用户态运行。在实际的运行过程中,处理机会在系统态和用户态之间切换。
特权指令:
在系统态运行时运行的指令,是关系到系统全局的指令。
35.系统调用
系统调用的类型
<span style="background-color:#333333"><span style="color:#b8bfc6">进程控制类系统调用
创建和终止进程的系统调用。
获得和设置进程属性的系统调用。
等待某事件出现的系统调用:用户进程在运行过程中,有时需要等待某事件(条件)出现后,方可继续执行。
文件操纵类系统调用 创建文件、删除文件、打开文件、关闭文件、读文件、写文件、建立目录、移动文件的读/写指针等。
进程通信类系统调用: 消息传递方式和共享存储区方式。</span></span>
系统调用的实现
系统调用时,控制要由用户态转换到系统态,借助陷入机制来完成
<span style="background-color:#333333"><span style="color:#b8bfc6">陷入硬件机构
陷入处理程序</span></span>
中断
<span style="background-color:#333333"><span style="color:#b8bfc6">内中断:由CPU内部事件引起的中断
外中断:由外部设备事件引起的中断
陷入和中断的区别
陷入是指执行了现行指令所引起;
而中断是由于系统中某事件引起的,事件与现行指令无关</span></span>
陷入向量
每条系统调用有一个唯一的系统调用号 处理系统调用需要:系统调用好和相应的参数
传递参数和调用好的方式
<span style="background-color:#333333"><span style="color:#b8bfc6">陷入指令自带方式:捎带能力有限
直接将参数传入相应的寄存器:MS-DOS采用这种方式。寄存器数量有限
参数表方式。将指向该参数表的指针放在某个指定的寄存器中。当前大多数的OS如UNIX系统采用了这种方式</span></span>
参数传递的两种方式
<span style="background-color:#333333"><span style="color:#b8bfc6">直接参数传递
在这里插入图片描述
间接参数传递
在这里插入图片描述</span></span>
系统调用处理步骤
执行前准备
<span style="background-color:#333333"><span style="color:#b8bfc6">因陷入指令从用户态转为系统态
保存中断进程的CPU环境:PSW,程序计数器、系统调用号、用户栈指针,以及通用寄存器等;压入进程的内核栈
传入参数</span></span>
分析系统调用号转入相应的系统调用子程序
<span style="background-color:#333333"><span style="color:#b8bfc6">系统调用入口表:系统调用号、参数个数和入口地址组成的系统表
查找系统调用入口表找到处理子程序入口地址
从系统调用处理子程序返回
检查是否需要调度,若需要调度则调度后转向新进程执行
否则从进程的系统栈中弹出保存的环境,返回调用进程继续执行</span></span>
- 系统调用功能主要是由系统调用子程序来完成的,对于不同的系统调用,起处理程序将执行不同的功能。