计算机操作系统——学习笔记(下)_设备的字符缓冲区队列 getc putc

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

缺点
在多级目录中查找一个文件,需要按路径名逐级访问中间节点,这就增加了磁盘 访问次数,无疑将影响查询速度。

目录查询技术
线性检索法(顺序检索法)
Hash方法
系统利用用户提供的文件名并将它变换为文件目录的索引值,再利用该索引值到目录中去查找,这将显著地提高检索速度。对于使用了通配符的文件名,系统此时便无法利用Hash方法检索目录,因此,这时系统还是需要利用线性查找法查找目录。

文件存储空间的管理

①空闲表法
空闲表法属于连续分配方式,它与内存的动态分配方式雷同,它为每个文件分配一块连续的存储空间,即系统也为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项。
空闲盘区的分配与内存的动态分配类似,同样是采用首次适应算法、循环首次适应算法等。系统在对用户所释放的存储空间进行回收时,也采取类似于内存回收的方法,即要考虑回收区是否与空闲表中插入点的前区和后区相邻接,对相邻接者应予以合并。
②空闲链表法
空闲盘块链
这是将磁盘上的所有空闲空间,以盘块为单位拉成一条链。当用户因创建文件而请求分配存储空间时,系统从链首开始,依次摘下适当数目的空闲盘块分配给用户。当用户因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。
空闲盘区链
这是将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法。在回收盘区时,同样也要将回收区与相邻接的空闲盘区相合并。在采用首次适应算法时,为了提高对空闲盘区的检索速度,可以采用显式链接方法,亦即,在内存中为空闲盘区建立一张链表。
③位示图法
位示图是利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已分配。
优点
从位示图中很容易找到一个或一组相邻接的空闲盘块。位示图很小,占用空间少,因而可将它保存在内存中,从而节省了许多磁盘的启动操作。
④成组链接法
在UNIX系统中采用的是成组链接法,这是将上述两种方法相结合而形成的一种空闲盘块管理方法,它兼备了上述两种方法的优点而克服了两种方法均有的表太长的缺点。

空闲盘块的组织
空闲盘块号栈用来存放当前可用的一组空闲盘块的盘块号(最多含100个号),以及栈中尚有的空闲盘块号数N。

空闲盘块的分配
首先检查空闲盘块号栈是否上锁,如未上锁,便从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格。若该盘块号已是栈底,即 S.free(0),这是当前栈中最 后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去(其中的有用数据已读入栈中)。然后,再分配一相应的缓冲区(作为该盘块的缓冲区)。最后,把栈中的空闲盘块数减1并返回。

空闲盘块的回收
将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加1操作。当栈中空闲盘块号数目已达100 时,表示栈已满,便将现有栈中的100个盘块号记入新回收的盘块中,再将其盘块号作为新栈底。

文件共享与文件保护

①基于索引结点的共享方式
文件的物理地址及其它的文件属性等信息放在索引结点中,在文件目录中只设置文件名及指向相应索引结点的指针。由任何用户对文件进行Append操作或修改, 所引起的相应结点内容的改变,都是其他用户可见的,从而也就能提供给其他用户来共享。
②利用符号链实现文件共享
在新文件中只包含被链接文件F的路径名。这样的链接方法被称为符号链接。新文件中的路径名则只被看作是符号链,当B要访问被链接的文件F且正要读LINK 类新文件时,此要求将被OS截获,OS根据新文件中的路径名去读该文件,于是就实现了用户B对文件F的共享。
磁盘容错技术
影响文件安全的因素:人为、系统、自然。
措施
①通过存取控制机制来防止由人为因素所造成的文件不安全性。
②通过磁盘容错技术来防止由磁盘部分的故障所造成的文件不安全性。
③通过“后备系统”来防止由自然因素所造成的不安全性。
第一级容错技术 SFT-Ⅰ
用于防止因磁盘表面缺陷所造成的数据丢失。它包含双份目录、双份文件分配表及热修复重定向和写后读校验等措施。
第二级容错技术 SFT-Ⅱ
用于防止由磁盘驱动器和磁盘控制器故障所导致的系统不能正常工作,它具体又可分为磁盘镜像和磁盘双工。
基于集群技术的容错功能
主要工作模式有三种:①热备份模式;②互为备份模式;③公用磁盘模式。

数据一致性

事务
事务是用于访问和修改各种数据项的一个程序单位。
事务记录
用来记录在事务运行时数据项修改的全部信息。

恢复算法可利用以下两个过程::
①undo〈Ti〉。该过程把所有被事务 Ti修改过的数据恢复为修改前的值。
②redo〈Ti〉。该过程把所有被事务 Ti修改过的数据设置为新值。

引入检查点的主要目的,是使对事务记录表中事务记录的清理工作经常化。在发生故障后,并不需要对事务记录表中的所有事务记录进行处理,而只需对最后一个检查点之后的事务记录进行处理。

并发控制
利用互斥锁、共享锁实现顺序性。

重复数据的数据一致性问题
第一种方法是当一个文件被修改后,可查找文件目录,以得到其它几个拷贝的索引结点号,再从这些索引结点中找 到各拷贝的物理位置,然后对这些拷贝做同样的修改;第二种方法是为新修改的文件建立几个拷贝,并用新拷贝去取代原来的文件拷贝。
盘块号一致性的检查
利用软件方法构成一个计数器表,每个盘块号占一个表项,可有0,…,N-1项,N为盘块总数。每一个表项中包含两个计数器,分别用作空闲盘块号计数器和数据盘块号计数器。如果情况正常,则两组计数器中对应的一对(计数器中的)数据应该互补。
链接数一致性检查
配置一张计数器表,此时应是为每个文建立一个表项,其中含有该索引结点号的计数值。在进行检查时,从根目录开始查找,每当在目录中遇到该索引结点号时,便在该计数器表中相应文件的表项上加1。当把所有目录都检查完后,便可将该计数器表中每个表项中的索引结点号计数值与该文件索引结点中的链接计数 count 值加以比较,如果两者一致,表示是正确的;否则,便是产生了链接数据不一致的错误。

第七章 操作系统接口

  1. 联机用户接口

操作系统是用户与计算机硬件系统之间的接口,两类接口:用户接口、程序接口。
用户接口分为两类:联机用户接口、脱机用户接口。
联机用户接口:字符显示式用户界面、图形化用户界面。
字符显示式用户界面:命令行方式、批命令方式(.BAT文件、Shell文件)。
联机命令的类型
①系统访问类;②磁盘操作类;③文件操作类;④目录操作类;⑤通信类;⑥其他命令。
键盘终端处理程序
①字符接收功能:面向字符方式、面向行方式。
②字符缓冲功能:专用缓冲区方式、公用缓冲池方式。
③回送显示。
④屏幕编辑。
⑤特殊字符处理。

命令解释程序
主要功能是先对用户输入的命令进行解释,然后转入相应命令的处理程序去执行。
命令解释程序的作用
在屏幕上给出提示符,请用户键入命令,然后读入该命令识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示。
MS-DOS命令解释程序的组成
常驻部分、初始化部分、暂存部分。

  1. Shell命令语言

UNIX的Shell是作为操作系统的最外层,也称为外壳。它可以作为命令语言,为用户提供使用操作系统的接口,用户利用该接口与机器交互。
简单命令
所谓简单命令,实际上是一个能完成某种功能的目标程序的名字。命令可带有参数表,用于给出执行命令时的附加信息。命令名与参数表之间还可使用一种称为选项的自变量,用破折号开始,后跟一个或多个字母、数字。
①进入与退出系统
用户的进入与退出过程,实际上是由系统直接调用Login及Logout程序完成的。
②文件操作命令
显示文件内容命令cat,复制文件副本的命令cp,对已有文件改名的命令mv,撤消文件的命令rm,确定文件类型的命令file。
③目录操作命令
建立目录的命令mkdir,撤消目录的命令rmdir,改变工作目录的命令cd,改变对文件的存取方式的命令chmod。
④系统询问命令
访问当前日期和时间命令date,询问系统当前用户的命令who,显示当前目录路径名的命令pwd。

重定向与管道命令
重定向:用于改变输入、输出设备的手段。
用重定向符“<”和“>”分别表示输入转向与输出转向。
在做输出转向时,若上述的文件file2并不存在,则先创建它;若已存在,则认为它是空白的,执行上述输出转向命令时,是用命令的输出数据去重写该文件;如果文件file2事先已有内容,则命令执行结果将用文件file1的内容去更新文件 file2的原有内容。现在,如果又要求把file4的内容附加到现有的文件file2的末尾,则应使用另一个输出转向符“>>”。

管道命令:用符号“|”来连接两条命令,使其前一条命令的输出作为后一条命令的输入。
由UNIX系统来 “缓冲”第一条命令的输出,并作为第二条命令的输入。在用管道线所连接的命令之间,实现单向、同步运行。

通信命令
①信箱通信命令mail
mail命令被作为在UNIX的各用户之间进行非交互式通信的工具。
②对话通信命令write
用这条命令可以使用户与当前在系统中的其他用户直接进行联机通信。
③允许或拒绝接收消息命令mesg
选项n表示拒绝对方的写许可(即拒绝接收消息);选项y指示恢复对方的写许可,仅在此时,双方才可联机通信。

后台命令
用户可以在这种命令后面再加上“&”号,以告诉Shell将该命令放在后台执行,以便用户在前台继续键入其它命令。

  1. 系统调用

为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系统态(也称为管态或核心态) 和用户态(也称为目态)。操作系统在系统态运行,而应用程序只能在用户态运行。在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数操作系统将CPU的指令集分为特权指令和非特权指令两类。
特权指令
在系统态时运行的指令,是关系到系统全局的指令。
非特权指令
在用户态时运行的指令。一般应用程序所使用的都是非特权指令。

系统调用
由操作系统捕获到该命令后,便将CPU的状态从用户态转换到系统态,然后执行操作系统中相应的子程序(例程),完成所需的功能。执行完成后,系统又将CPU 状态从系统态转换到用户态,再继续执行应用程序。
系统调用在本质上是应用程序请求OS内核完成某功能时的一种过程调用。但它 是一种特殊的过程调用,它与一般的过程调用有下述几方面的明显差别:
①运行在不同的系统状态。
②状态的转换通过软中断进入。
③返回问题。
④嵌套调用。

中断机制
系统调用是通过中断机制实现的,并且一个操作系统的所有系统调用都通过同一个中断入口来实现。

系统调用的类型
①进程控制类系统调用
创建和终止进程的系统调用、获得和设置进程属性的系统调用、等待某事件出现的系统调用。
②文件操纵类系统调用
创建和删除文件、打开和关闭文件、读和写文件。
③进程通信类系统调用
消息传递方式和共享存储区方式。
④设备管理类系统调用
主要用于实现申请设备、释放设备、设备I/O和重定向、获得和设置设备属性、逻辑上连接和释放设备等功能
⑤信息维护类系统调用
主要用来获得包括有关系统和文件的时间、日期信息、操作系统版本、当前用户以及有关空闲内存和磁盘空间大小等多方面的信息。

POSIX(基于UNIX的可移植操作系统接口)标准
POSIX定义了标准应用程序接口(API),用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。只有符合这一标准的应用程序,才有可能完全兼容多种操作系统,即在多种操作系统下都能够运行。
POSIX标准定义了一组过程,这组过程是构造系统调用所必须的。通过调用这些过程所提供的服务,确定了一系列系统调用的功能。

系统调用的实现
①中断和陷入硬件机构
把中断分为外中断和内中断。所谓外中断,是指由于外部设备事件所引起的中断,内中断则是指由于CPU内部事件所引起的中断。内中断(trap)也被译为“捕获”或“陷入”。通常,陷入是由于执行了现行指令所引起的;而中断则是由于系统中某事件引起的,该事件与现行指令无关。由于系统调用引起的中断属于内中断,因此把由于系统调用引起中断的指令称为陷入指令。
不同的系统调用对应不同的陷入向量,在进行陷入处理时,根据陷入指令中的陷入向量,转入实现相应的系统调用功能的子程序,即陷入处理程序。

系统调用号和参数的设置
如何将系统调用的参数传递给陷入处理机构和系统内部的子程序(过程),常用的实现方式有以下几种:
陷入指令自带方式
直接将参数送入相应的寄存器
参数表方式(当前大多数的 OS 中,如 UNIX 系统和 Linux 系统采用)

系统调用的处理步骤
①将处理机状态由用户态转为系统态;
②由硬件和内核程序进行系统调用的一般性处理;
③将用户定义的参数传送到指定的地址保存起来;
④分析系统调用类型,转入相应的系统调用处理子程序;
⑤恢复被中断的或设置新进程的CPU现场, 然后返回被中断进程或新进程,继续往下执行。
系统调用的功能主要是由系统调用子程序来完成的。

  1. UNIX系统调用

UNIX系统调用的类型
①进程控制
创建进程(fork)、终止进程(exit)、等待子进程结束(wait)、执行一个文件(exec)、获得进程ID、获得用户ID、进程暂停(pause)。
②文件操纵
创建文件(create)、打开文件(open)、关闭文件(close)、读和写文件read和write、连接和去连接(link和unlink)
③进程间的通信
在UNIX系统中提供了一个用于进程间通信的软件包,简称IPC。它由消息机制、共享存储器机制和信号量机制三部分组成。
④信息维护
设置和获取时间、获得进程和子进程时间(times)、设置文件访问和修改时间(utime)、获取当前UNIX系统的名称(uname)。

被中断进程的环境保护
在中断和陷入发生后,是先经硬件陷入机构予以处理,再进入 trap.S, 然后再调用 trap.C 继续处理。
在UNIX系统Ⅴ的内核程序中,有一个trap.S文件,它是中断和陷入总控程序。该程序用于中断和陷入的一般性处理。
系统调用陷入后需处理的公共问题
①确定系统调用号
②参数传送
③利用系统调用定义表转入相应的处理程序
④系统调用返回前的公共处理

  1. 图形用户接口GUI

Windows操作系统为例,在系统初始化后,操作系统为终端用户生成了一个运行explorer.exe的进程,它运行一个具有窗口界面的命令解释程序,该窗口为一个特殊的窗口,即桌面。采用的是事件驱动控制方式,用户通过动作来产生事件以驱动程序工作。事件实质就是发送给应用程序的一个消息,用户按键或点击鼠标等动作都会产生一个事件,通过中断系统引出事件驱动控制程序工作,对事件进行接收、分析、处理和清除。

第八章 网络操作系统

计算机网络概述

计算机网络的拓扑结构
①星形和树形网络拓扑结构
②公用总线形和环形网络拓扑结构
③网状形网络拓扑结构
在广域网中最广泛采用的是网状形网络拓扑结构。它是通过点—点的连接方式,将分布在不同地点的、用于实现数据通信的分组交换设备PSE(Packet Switch Equipment)连接在一起,形成一个不规则的网状形网络。在逻辑上可分为通信子网和资源子网两部分。
网络拓扑结构的主要特点是它具有分布性。减少了网络中的信息流量,提高了可靠性,改善了网络的可扩充性。

  • 计算机广域网络

(1)公用交换电话网
交换是指在两个或多个结点之间建立暂时通信线路(或链路)的操作。建立链路的操作是由交换中心完成的。两个结点在通信之前,须先建立链接,然后源结点把信息通过该链路发送给交换中心,再由交换中心把信息转发到目标结点,通信结束后便拆除该链接。
(2)分组交换网
报文交换方式
基于“存储—转发”方式进行报文交换的,即数字式报文交换中心先将各用户发来的电报接收下来,存储在报文缓冲区中,经过适当的处理(如判别目标地址、报文优先级等)后,为该报文选择一条转发路由,并将它送至该路由的输出队列中排队,再依次将该队列中各报文转发出去。
分组交换方式
分组交换方式对报文交换方式的一种改进,它同样是基于“存储—转发”方式来传 输信息的。为了提高传输效率而将不定长的报分解成定长的(报文)分组(packet),然后以分组为单位进行传输。这种方式的好处是:简化了对缓冲区的管理,加速了对信息的传输,减少了传输出错率以及重发信息量。
分组交换网
以分组作为传输的基本单位。一个分组由分组头和正文两部分组成。正文是用户要传送的信息,而分组头则是用于控制该分组在网络中传输所必需的(控制)信息。
(3)帧中继网
①帧交换方式的帧中继网
帧交换方式中传输的基本单位是帧,其长度是可变的,它们同样都采用“存储—转发”方式。
信元交换方式的帧中继网
网络中所传输和交换的基本单位是具有固定长度的“信元” 。当源帧交换器收到用户设备发来的帧后,便将之分割为多个定长的信元,在整个帧中继网络中传输和交换时,都是以信元为基本单位,直至它们到达目标帧交换器后,才被重新组装成帧。
(4)异步传输模式(ATM)
ATM 是以信元(Cell)为基本传输单位的,在每个时间片中传输一个信元。由于信元的发送无固定的周期,因而将这种传输方式称为异步传输方式。
在 ATM 交换方式中,主要提供的是面向连接的方式。特点:按时间片交换,定长交换,硬件实现(这无疑是ATM能获得极高传输速率的重要原因)。

  • 计算机局域网络

(1)基本型局域网
①以太网
采用的是公用总线型网络拓扑结构,采用了带有冲突检测的载波侦听多重访问控制规程,亦即 CSMA/CD 规程。
②令牌环网
采用的是环形网络拓扑结构。
可通过两种途径来扩展LAN站点的平均带宽。其一是提高LAN的传输速率; 另一途径是减少每个网段上的站点数目。
(2)快速局域网
快速LAN是试图通过提高LAN的传输速率来增加每个站点的带宽的。
FDDI光纤环网、快速以太网 100 BASE-T。
(3)交换式LAN
交换式LAN是通过减少每个局域网段上的站点数目的方法,来增加站点的平均带宽。构建交换式局域网要比构建快速局域网更方便、经济。
(4)千兆以太网
千兆位以太网仍采用CSMA/CD规程。在传输介质上,主要利用光纤系统。
(5)10 Gb/s以太网
10 Gb/s以太网仍采用CSMA/CD规程,只能工作在全双工方式,因而不存在争用总线问题。

网络互连
(1)网桥
网桥是用于连接同构LAN的网络互连设备。同构LAN是指从应用层到逻辑链路控制子层这几个层次中,相对应的层次采用相同的协议。
网桥所实现的功能应属于MAC子层和物理层。从网桥的工作原理中不难得知网桥应具有以下功能:
①帧的发送和接收;②缓冲管理;③协议转换。
(2)路由器
路由器是在网络层上实现的互连,它能识别不同的网络层协议,如IP、IPX协议等,因而具有更强的互连能力。路由器的功能涉及到物理层、数据链路层和网络层,其主要功能如下:
①拆包和打包功能;②路由选择功能;③进行协议转换;④分段和重新组装。
(3)网关
网关用于互连异构型网络。所谓互连异构型网络,一般是指不同类型的网络。在网关中至少要进行网络层、数据链路层及物理层的协议转换,目前对异构型网络的互连,通常是在网络层或传输层上实现的。
异构型网络的互连:异构型LAN互连、LAN与WAN互连、WAN与WAN互连、LAN与主机互连。

网络体系结构

网络体系结构的基本概念
所谓网络体系结构,就是计算机网络的层次及其协议的集合。具体地说,网络体系结构是关于计算机网络应设置哪几层,每个层次又应提供哪些协议的精确定义。至于这些功能应如何实现,则不属于网络体系结构部分。

开放系统互连参考模型OSI/RM
开放系统(OSI)的内容
①开放系统之间的信息交换,这是每一个单独的开放系统的内部行为;
②开放系统之间相互合作去完成一项共同任务。
OSI/RM的组成
①开放系统;②应用实体;③连接;④物理介质。

分层
每个系统可被看成是由有序的一组子系统所组成。一个系统被分成若干个层次,其中第N层是由若干个处于第N层的子系统所组成。(N)子系统又包括了若干个(N)实体。在同一层中的实体为对等实体。除最高层外,分布在(N)层中的(N)实体相互合作,向(N+1)层的实体提供(N)服务。

网络协议
(N)实体之间的合作,是受一个或几个(N)协议支配的。(N)协议精确地规定了(N)实体如 何利用(N-1)服务协同工作去实现(N)功能。

数据单元
OSI把对等实体之间所传送的信息称为(N)协议数据单元(N)-PDU,由两部分组成:
①(N)协议控制信息(N)-PCI,用它来协调两个实体之间的连接操作;
②(N)服务数据单元(N)-SDU,其中存放由(N+1)实体提供的数据。

OSI七层模型
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
其中低三层即物理层、数据链路层和网络层用于实现通信子网中的信息传输,或者说,它们是面向通信的(一般称之为通信子网);最高三层即会话层、表示层和应用层向应用进程提供资源子网功能的服务,因此它是面向应用的;中间层即传输层,它是在高三层和低三层之间起桥梁作用。

  • 物理层

它建立在通信介质(它不在OSI七层之内)的基础上实现系统和通信介质的接口功能,为数据链路实体之间透明的传输比特流提供服务。
功能:物理链接的建立与拆除;物理服务数据单元传输;物理层管理。

  • 数据链路层

在相邻两系统的网络实体之间建立、维持和释放数据链路连接,以及正确无误地传输数据链路服务数据单元。功能:数据链路连接的建立和释放;数据链路协议数据单元的形成;定界和同步;顺序和流量控制;差错的检测和恢复。

  • 网络层

主要涉及通信子网及与主机的接口。网络层提供建立、维持和释放网络连接的手段,以实现两个端系统中传输实体间的通信。功能:
网络连接服务;路径选择;网络连接多路复用;分组与组段;有序传送和流量控制;差错的检测和恢复。
网络层提供的数据传输服务:无连接服务和面向连接的服务,亦把它们称为数据报服务和虚电路服务。

  • 传输层

传输层在低三层和高三层间起桥梁作用。该层消除了OSI高层所要求的服务与各类网络层所提供的服务之间的差异。具体表现在以下三方面:传输出错率和建立连接的失败率;数据传输速率、吞吐量和传输时延;分段和组段功能。

  • 会话层

对基本的传输连接服务进行“增值”,以提供一个能满足多方面要求的会晤连接服务。会话层的“增值”是基于下述几种应用要求的:半双工通信、更有效的差错纠正机制、允许暂停发送消息。

  • 表示层

对不同系统的表示方法进行转换,消除网内各应用实体之间的语言差异,以实现不同系统之间的数据交换。

  • 应用层

为应用进程访问OSI环境提供了手段,并直接为应用进程服务,其它各层也都通过应用层向应用进程提供服务。应用层所提供的服务可分为两类:公共应用服务元素(CASE)、特定应用服务元素(SAEA)

TCP/IP网络体系结构
TCP/IP模型
TCP/IP是一个协议族,其中包含了多种协议,由这些协议构成了TCP/IP的网络体系结构。

  • 网络访问层

主要关注的是两个端系统之间的数据通信,以及两个端系统借以通信的网络类型。所使用的网络可能是电路交换网、分组交换网、ATM网或者以太网等。

  • 网络互连层

TCP/IP模型中最重要的层次,其中的IP协议主要用于异构型网络之间的相互连接和路由选择。IP所提供的是面向无连接的、不可靠的传输服务。

  • 传输层

最主要的协议是传输控制协议TCP,它所提供的是面向连接的、可靠的端到端通信机制。

  • 应用层

提供了许多用于支持各种应用程序的网络服务,相应地,在应用层就有许多应用层协议。

互联网协议IP V4和IP V6
IP V4协议
IP V4 协议主要应解决三个问题,即寻址、数据报的分段和重新组装、路由选择。
IP V6协议
修改:扩大了地址空间、增设了安全机制、提高了路由的转发效率、增强了协议的可扩充性。

传输层协议TCP和UDP
传输控制协议TCP
TCP提供了面向连接的、可靠的端到端通信机制。所谓面向连接,是指在端系统要传送数据前,应先进行端到端之间的连接;在数据传送完后,应拆除连接。而所谓可靠是指,即使网络层(通信子网)出现了差错,TCP协议采用了确认和重发措施,仍能正确地控制连接的建立、数据的传输和连接的释放。

用户数据报协议UDP
UDP协议是一种无连接的、不可靠的协议。它不要求网络中的端系统在数据传送之前先建立端到端之间的连接;同样,在数据传送结束后,也不要拆除连接。在数据传送过程中,无需对传送的数据进行差错检测,也不必对丢失的数据进行重发等。

LAN网络体系结构
局域网参考模型LAN/RM
将数据链路层分为两个子层:逻辑链路控制子层LLC和介质(媒体)访问控制子层 MAC。
LLC子层是数据链路层的顶部子层,其主要功能是在任何一个源LLC实体和目标实体之间进行信息传输。在LLC子层中提供了两种类型的链路操作,其中类型1操作提供的是无连接服务,类型2操作提供的是面向连接的服务。
介质访问控制MAC子层
推荐标准:CSMA/CD、令牌传送。

Internet与Intranet

Internet的特征:广域性、广泛性、高速性和综合性。
IP地址
IP地址是在Internet中主机的地址标识。IP地址共有32位二进制数,可以表示为4个十进制数,在各十进制数之间均用小数点隔开。每个主机的IP地址都是由网络标识和主机标识两部分组成,可分为A、B、C三类。
在这里插入图片描述
域名
如果说,IP地址是面向网络的主机标识符,域名则是面向用户的主机标识符。每个域名通常由几个部分(段)组成,我们把域名中的每个段称为一个子域,各子域之间用小数点分隔开。

Internet提供的传统信息服务
电子邮件(E-mail)服务、文件传输服务(FTP)、远程登录服务TELNET、电子公告板系统BBS。

Web服务
WWW的基本概念
WWW(Word Wide Web)称为环球网或Web。它是当前最为流行的信息服务类型。Web是一种信息检索工具。

超文本标识语言HTML
HTML是用于创建超文本文件的编程语言。可用该语言向普通文件中添加一些特殊的标识符,使在所生成的文件中,含有其它多种类型的文件,如声音,图像等,我们把这种文件称为超文本文件。特点:通用性、简易性、可扩充性、平台无关性。

超文本传输协议HTTP
HTTP是一个通用的、面向对象的客户(Web浏览器)/服务器(Web服务器)协议。该协议属于TCP/IP协议族中的应用层通信协议, 是建立在TCP协议基础上的,依赖于TCP协议来确保传输的正确性。
WWW的基本特征
对信息资源访问的分布性、信息形式的多样性、用户界面的统一性、Web服务应用的广泛性。

客户/服务器模式

两层结构客户/服务器模式的局限性
不能适应应用不断增多的情况;需要在客户机与服务器上安装特定的高层(表示层和应用层)网络软件。
只适用于较小规模的信息系统和网络中。

三层结构的客户/服务器模式
在客户机与服务器之间,增设一中间实体,用该实体把客户机与服务器隔开。通常把这个中间实体称为应用服务器或中间层服务。把两层客户/服务器模式客户机中的大部分应用软件和接口移到应用服务器上,从而简化客户机。
应用服务器的组成:与客户机交互的接口、与数据(库)服务器交互的接口和事务逻辑。
事物逻辑的主要功能有两个:功能一是将用户的请求包转换为对数据(库)服务器访问的请求包,功能二是将数据(库)服务器返回的响应包转换为对客户机的响应包。
优点:①增加了系统的灵活性和可扩充性;②简化了客户机,降低了整个系统的费用;③使客户机的安装、配置和维护更为方便。
缺点:①开发难度大,开发周期长;②访问效率低。
当信息系统的规模较小时,最好采用两层客户/服务器模式;对于大型信息系统,通常都采用三层客户/服务器模式。

浏览器/服务器模式
在基于Internet的Internet内部网络中,在Internet中再增加一个Web服务器,它相当于前面所介绍的应用服务器,此时的客户机不是直接去访问Internet中的(数据库)服务器,而是访问Web服务器,再由Web服务器代理客户机去访问某个(些)(数据库)服务器。
Web浏览器、Web服务器和数据库服务器三层的客户/服务器模式。通常把这种三层结构的模式称为浏览器/服务器模式。

网络操作系统的功能
  1. 数据通信功能

①连接的建立和拆除;②报文的分解与组装;③传输控制:发送——等待方式、连续发送方式;④流量控制;⑤差错的检错与纠正

  1. 网络资源共享功能

①硬盘共享:以虚拟软盘方式实现硬盘共享、以文件服务方式实现硬盘共享。
②网络打印
在LAN中以假脱机方式实现共享打印的原理。
共享打印模式:客户/服务器模式、对等模式。

  1. 分布式文件系统DFS

先利用DFS工具来建立一个共享目录,称之为DFS根目录; 再在此根目录下建立若干个子目录,这些子目录既可以是常规的本地子目录,也可以是一个个连接点。令这些连接点指向一些其它计算机系统上的共享目录和文件,这样,就把人们感兴趣的所有有关的共享目录和文件与DFS根目录下的分布式文件系统建立了连接。

应用互操作功能
①信息的“互通性”
所谓信息的“互通性”,是指在不同网络的结点之间能实现通信。而妨碍信息“互通性”的主要因素,是各个网络使用了各不相同的传输协议。
在完成了网络之间物理上的连接之后,应再采取措施实现信息的互通。实现信 息的互通的一种有效方法是为互连网络中的所有各网站,都配置同一类型的传输协议。目前主要是利用TCP/IP来实现信息的“互通性”。
②信息的“互用性”
所谓信息的“互用性”是指,在不同的网络中的站点之间能实现信息的互用,亦即一个网络中的用户能够去访问另一个网络文件系统(或数据库系 统)中的文件(数据)。
网络文件系统协议NFS
NFS(Network File System)是一种用于TCP/IP网络上的客户/服务器协议。在NFS 协议中包括一系列的命令和服务,这些命令和服务涉及到客户访问文件服务器上的文件系统、共享打印机,以及文件传输等,客户还可利用NFS命令去控制和访问远程文件系统;服务器则是根据请求者的请求做相应的处理,并将结果返回给请求者。NFS在提供这些服务时,要利用外部数据表示协议XDR(和远程过程调用 RPC。
外部数据表示协议XDR
XDR是处于OSI/RM中的表示层,主要用于处理在不同体系结构中的计算机之间的数据表示不一致时所出现的问题。
远程过程调用 RPC
远程过程调用是将单机环境下的过程调用延伸到分布式系统环境。

网络管理
网络管理的目标:①增强网络的可用性;②提高网络的运行质量;③提高网络的资源利用率;④保障网络数据的安全性;⑤提高网络的社会和经济效益。
网络管理的功能:①配置管理;②故障管理;③性能管理;④安全管理;⑤计费管理。
网络管理模型
在现代网络中,普遍采用管理者/代理者模型。管理者是指驻留在管理系统中的,用于发出管理命令和接收代理者发来的通知的软件;代理者是指驻留在受管对象系统中,用于接收并执行管理者发来的命令,提供受管对象的视图并发出用于反映受管对象行为的通知的软件。

网络操作系统提供的服务

域名系统(DNS)
域名系统同样也采用倒树形结构,它对应于域名的层次。在DNS的顶部是根服务器,下面是若干个顶级域名服务器,再下面是二级域名服务器……。由上级域名服务器管理属于它的下一级域名服务器。

域名解析
在域名系统中的每台本地域名服务器,都配置了一个域名解析器软件。所谓域名解析,是指将主机域名转换为对应的IP地址。
DNS是基于客户/服务器模式的系统,因此在查询IP时,通常需要经过多次客户和服务器之间的交互。
提升解析效率:在每个域名服务器中配置一个高速缓存,服务器应定期更新缓存中的数据。
域名解析过程中客户与服务器的交互过程。
在这里插入图片描述

目录服务
目录服务管理的对象:
①物理设备。通常为物理设备建立一张目录表,表中的每个目录项中可以包括物 理设备的标识符、设备类型。
②网络服务。
③用户。

目录服务的功能:
①用户管理。保证核准用户能够方便地访问各种网络服务,禁止非核准用户的访问。
②分区和复制功能。将一个庞大的目录库分成若干个分区,再将这些分区的目录 库分别复制到多台服务器中,且使每个分区被复制的位置尽量靠近最常使用这些对象的用户,在有的目录服务中还允许在一台服务器上存放多个不同分区的拷贝。
③创建、扩充和继承功能。一些目录服务采用了面向对象的结构。
④多平台支持功能。对于一个大型企业网络,通常可能包含多种类型的网络工作站和网络服务器,因而其目录服务也存在着在管理对象上的差异。这就要求目录服务具有跨越平台的能力。

目录服务带来的好处:
①简化了网络管理。只需为新服务器在网络的目录树上建立一个新的目录结点(项),这样,网络上的所有用户便都可以访问该新服务器。
②方便用户入网和访问。实现一个用户一个账户的单一登录性,也允许用户从网络中的任一结点对网络中的各个服务器进行访问。
③提高了网络的可用性。在目录中都有所有重要设备和所提供的服务的目录项;当网络中有某个(些)服务器发生故障时,目录服务可以及时发现,并可将用户对该服务器的访问请求转送到其它服务器上。

支持Internet 提供的服务
所谓支持Internet的功能是指,用户能从客户机上到Internet网上去浏览,并能取得Internet所提供的多种服务。

必须在客户机和服务器上都配置相应的软件:
①Web浏览器软件和Web服务器软件。
浏览器的基本功能是向 Web 服务器提出服务请求,并显示由 Web 服务器制作的显示信息。服务器软件向Web浏览器提供Web服务的,由此形成了浏览器/服务器模式。
②安装E-mail、FTP等多种服务软件
近几年来所推出的新的浏览器软件,已不是单纯地实现浏览器功能,还包括许多其它的服务功能,如 E-mail服务、FTP服务、Telnet服务等。通常把这样的浏览器软件称为浏览器套件。在近几年所推出的Web服务器软件中,除了能提供Web 服务,同样也包括了许多其它的服务功能。
③在客户机上配置TCP/IP协议软件。原因是实现信息互通,建立在TCP/IP基础上的Internet。

第九章 系统安全性

系统安全的基本概念

系统安全性的内容:物理安全、逻辑安全和安全管理。
逻辑安全是指系统中信息资源的安全:数据机密性、数据完整性和系统可用性。
系统安全的性质:多面性、动态性、层次性、适度性。
系统安全威胁的类型:假冒用户身份、数据截取、拒绝服务、修改信息、伪造信息、否认操作、中断传输、通信量分析。
信息技术安全评价公共准则(CC)
CC 的组成:信息技术产品的安全功能需求定义,这是面向用户的;安全保证需求定义,这是面向厂商的。

数据加密技术
数据加密技术是对系统中所有存储和传输的数据进行加密,使之成为密文。
数据加密技术包括这样几方面的内容:数据加密、数据解密、数字签名、签名识别以及数字证明等。

数字加密模型
组成:明文、密文、加密(解密)算法E(D)、密钥K。
类型:
①按其对称性分类:
对称加密算法。
在这种方式中,在加密算法和解密算法之间存在着一定的相依关系,即加密和解密算法往往使用相同的密钥;或者在知道了加密密钥Ke后,就很容易推导出解 密密钥Kd。
非对称加密算法。
这种方式的加密密钥Ke和解密密钥Kd不同,而且难以从Ke推导出Kd来。可以将其中的一个密钥公开而成为公开密钥,因而把该算法称为公开密钥算法。用公开密钥加密后,能用另一把专用密钥解密;反之亦然。
②按所变换明文的单位分类
序列机密算法、分组加密算法。

基本加密方法
①易位法:按照一定的规则,重新安排明文中的比特或字符的顺序来形成密文,而字符本身保持不变。
比特易位、字符易位。
②置换法:按照一定的规则,用一个字符去置换(替代)另一个字符来形成密文。比较好的置换算法是进行映像。

对称加密算法和非对称加密算法

  • 对称加密算法

最有代表性的对称加密算法是数据加密标准DES。
在DES中所使用的密钥长度为64位,它由两部分组成,一部分是实际密钥,占56位;另一部分是8位奇偶校验码。DES属于分组加密算法,它将明文按64位一组分成若干个明文组,每次利用56位密钥对64位的二进制明文数据进行加密,产生64位密文数据。
DES加密算法属于对称加密算法。加密和解密所使用的密钥是相同的。DES的保密性 主要取决于对密钥的保密程度。加密者必须用非常安全的方法(如通过个人信使)将密钥送给接收者(解密者)。如果通过计算机网络传送密钥,则必须先对密钥本身予以加密后再传送,通常把这种算法称为对称保密密钥算法。

  • 非对称加密算法

在对数据进行加密和解密时,使用不同的密钥。每个用户都保存着一对密钥,每个人的公开密钥都对外公开。假如某用户要与另一用户通信,他可用公开密钥对数据进行加密,而 收信者则用自己的私用密钥进行解密。这样就可以保证信息不会外泄。
由于对称加密算法和非对称加密算法各有优缺点,即非对称加密算法要比对称加密算法处理速度慢,但密钥管理简单,因而在当前新推出的许多新的安全协议中,都同时应用了这两种加密技术。
一种常用的方法是利用公开密钥技术传递对称密码,而用对称密钥技术来对实际传输的数据进行加密和解密。例如,由发送者先产生一个随机数,此即对称密钥,用它来对欲传送的数据进行加密;然后再由接收者的公开密钥对对称密钥进行加密。接收者收到数据后,先用私用密钥对对称密钥进行解密,然后再用对称密钥对所收到的数据进行解密。

数字签名
在利用计算机网络传送报文时,可将公开密钥法用于电子(数字)签名来代替传统的签名。
数字证明书
由一个大家都信得过的认证机构CA为公开密钥发放一份公开密钥证明书,又把该公开密钥证明书称为数字证明书,用于证明通信请求者的身份。

网络加密技术
①链路加密
链路加密,是对在网络相邻结点之间通信线路上传输的数据进行加密。链路加密常采用序列加密算法,它能有效地防止由搭线窃听所造成的威胁。两个数据加密设备分别置于通信线路的两端,它们使用相同的数据加密密钥。
在链路加密方式中,不仅对正文做了加密,而且对所有各层的控制信息也进行了加密。
在链路加密方式中,在相邻结点间的物理信道上传输的报文是密文,而在所有中间结点中的报文则是明文,这给攻击者造成了可乘之机,使其可从中间结点上对传输中的信息进行攻击。这就要求能对所有各中间结点进行有效的保护。
②端到端加密
端到端加密方式是在源主机或前端机FEP中的高层(从传输层到应用层)对所传输的数据进行加密。在整个网络的传输过程中,不论是在物理信道上,还是在中间结点中,报文的正文始终是密文,直至信息到达目标主机后才被译成明文,因而这样可以保证在中间结点不会出现明文。在这种加密方式中,不能对报头中的控制信息(如目标地址、路由信息等)进行加密。
上述两种加密方式各有优缺点。一种比较好的网络加密方式是,同时采用链路加密和端到端加密,以取长补短。如利用端到端加密方式来使用户数据以密文形式穿越各个中间结点,以保障用户数据的安全;而利用链路加密方式则可使报头中的控制信息以密文形式在通信信道中传输,使之不易受到攻击。

认证技术

认证又称为鉴别或验证。它是指证被认证的对象(包括人和事)是否名符其实或者是否有效的一种过程。
身份认证目前主要依据下述三个方面的信息来确定:所知、所有、个人特征。

①基于口令的身份认证
利用口令确认用户的身份是当前最常用的认证技术。
对口令机制的基本要求:口令长度适中、自动断开连接、隐蔽回送显示、记录和报告。
一次性口令
口令被使用一次后,就换另一个口令。在采用该机制时,用户必须提供记录有一系列口令的一张表,并将该表保存在系统中。系统为该表设置一指针用于指示下次用户登录时所应使用的口令。
口令文件
口令文件用于保存合法用户的口令和与口令相联系的特权。
保证口令文件安全性的最有效的方法是,利用加密技术。选择一个函数来对口令进行加密,该函数f(x)具有这样的特性:在给定了x值后,很容易算出f(x);然而,如果给定了f(x)的值,却不能算出x的值。利用f(x)函数去编码(即加密)所有 的口令,再将加密后的口令存入口令文件中。当某用户输入一个口令时,系统利用函数f(x)对该口令进行编码,然后将编码(加密)后的口令与存储在口令文件中的已编码的口令进行比较,如果两者相匹配,便认为是合法用户。
挑战——响应验证

②基于物理标志的认证技术
基于磁卡的认证技术
磁卡是基于磁性原理来记录数据的,在磁卡上所存储的信息,可利用磁卡读写器将之读出。
基于IC卡的认证技术
在IC卡中可装入CPU和存储器芯片,使该卡具有一定的智能。CPU用于对内部数据的访问和与外部数据进行交换,还可利用加密算法对数据处理。
根据在磁卡中所装入芯片的不同可把IC卡分为以下三种类型:
存储器卡:
只有一个E2PROM(可电擦、可编程只读存储器)芯片,不具有安全功能,只能作为储值卡。
微处理器卡:
它除具有E2PROM 外,还增加了一个微处理器。已具有一定的加密设施,被广泛用作信用卡。
密码卡:
又增加了加密运算协处理器和RAM。能支持非对称加密体质RSA,专门用于确保安全的智能卡,在卡中存储了一个很长的用户专门密钥和数字证明书。
将IC卡用于身份识别的方法明显地优于磁卡,是因为:IC 卡具有更好的安全性、防伪性、保密性,且存储容量大得多。

③基于生物标志的认证技术
常用于身份识别的生理标志:指纹、视网膜、声音、手指长度。
生物识别系统的要求:识别系统的性能必须满足要求;能被用户接受;系统成本适当。
生物识别系统的组成:注册部分、识别部分。

④基于公开密钥的认证技术

  1. 申请数字证书:服务器申请数字证书;客户申请书证书。
  2. SSL握手协议:身份认证、协商加密算法、协商加密密钥。
  3. 数字加密和检查数据的完整性。
控制访问技术

保护域:进程对一组对象访问权的集合。它规定了进程所能访问的对象和能执行的操作。
进程和域间的静态联系方式
在进程和域之间,可以一一对应,即一个进程只联系着一个域。在进程的整个生命期中,其可用资源是固定的,我们把这种域称为“静态域”。
进程和域间的动态联系方式
在进程和域之间,也可以是一对多的关系,即一个进程可以联系着多个域。在此情况下,可将进程的运行分为若干个阶段,其每个阶段联系着一个域,这样便可根据运行的实际需要,来规定在进程运行的每个阶段中所能访问的对象。

访问矩阵
利用一个矩阵来描述系统的访问控制。访问矩阵中的行代表域,列代表对象,矩阵中的每一项是由一组访问权组成的。

具有域切换权的访问矩阵
为了能对进程进行控制,同样应将切换作为一种权力,仅当进程有切换权时,才能进行这种切换。

访问矩阵的修改:拷贝权、所有权、控制权。
拷贝权和所有权都是用于改变矩阵内同一列的各项访问权的,或者说,是用于改变在不同域中运行的进程对同一对象的访问权。控制权则可用于改变矩阵内同一行中(域中)的各项访问权,亦即,用于改变在某个域中运行进程对不同对象的访问权。

访问控制矩阵的实现
访问控制表
对访问矩阵按列(对象)划分,为每一列建立一张访问控制表ACL。在该表中, 已把矩阵中属于该列的所有空项删除,此时的访问控制表是由一有序对(域,权集)所组成的。
域是一个抽象的概念,每个用户是一个域,也可以每个进程是一个域。
访问控制表也可用于定义缺省的访问权集。

访问权限表
把访问矩阵按行(即域)划分,便可由每一行构成一张访问权限表。换言之,这是由一个域对每一个对象可以执行的一组操作所构成的表。
访问权限表不能允许直接被用户(进程)所访问。
大多数系统都同时采用访问控制表和访问权限表,在系统中为每个对象配置一 张访问控制表。当一个进程第一次试图去访问一个对象时,必须先检查访问控制表,检查进程是否具有对该对象的访问权。如果无权访问,便由系统来拒绝进程的访问,并构成一例外(异常)事件;否则(有权访问),便允许进程对该对象进行访问,并为该进程建立一访问权限,将之连接到该进程。以后,该进程便可直接利用这一返回的权限去访问该对象,这样,便可快速地验证其访问的合法性。当进程不再需要对该对象进行访问时,便可撤消该访问权限。

计算机病毒

计算机病毒的基本概念
计算机病毒是一段程序,它能不断地进行复制和感染其它程序,无需人为介入便能由被感染的程序和系统传播出去。
计算机病毒的危害:
占用系统空间、占用处理机时间、对文件造成破坏、使机器运行异常。
计算机病毒的特征:
寄生性、传染性、隐蔽性、破坏性

计算机病毒的类型
①文件型病毒
现在大多数病毒都采用寄生的方法,把自己附着在正常程序上。
大多数病毒是被从程序的后面装入的,并把文件头中起始地址指向病毒的始端。病毒也可以被放在文件的中间,即充斥在程序里的空闲空间中。当受感染的程序执行时,病毒将寻找其它可执行文件继续散播。
②内存驻留病毒
该病毒一旦执行,自己便占据内存驻留区,通常选择占据在内存的上端或下端的中断变量中(通常不会使用的数百个字节的内存区域)。为了能使自己频繁地执行,通常内存驻留病毒会把陷阱或中断向量的内容复制到其它地方去,而把自己的地址放入其中,使中断或陷阱指向病毒程序的入口。
③引导扇区病毒
病毒也会寄生于磁盘上用于引导系统的引导区。这样,当系统开机时,病毒便借助于 引导过程进入系统。
④宏病毒
宏病毒可利用软件提供的宏功能将病毒插入到带宏的doc文件或dot文件中。
⑤电子邮件病毒
电子邮件病毒嵌入到电子邮件中,只要接收者打开含有该病毒的电子邮件,病毒就会被激活。由于电子邮件病毒是通过Internet传播的,因此使病毒的传播速度显著加快。

病毒的隐藏方式
①伪装:通过压缩伪装;通过修改日期或时间来伪装。
②隐藏:隐藏于目录和注册表空间;隐藏于程序的页内零头。
③更改用于磁盘分配的数据结构。
④更改坏扇区列表。

常用的产生多态病毒的方法如下:插入多余的指令;对病毒程序进行加密。

基于病毒数据库的病毒检测方法
①建立病毒数据库
首先应当采集病毒的样本。
②扫描硬盘上的可执行文件
采取将硬盘上的可执行文件与病毒数据库中的病毒样本严格匹配的方式,可能会漏掉许多多形态病毒。 解决这一问题的方法是采用模糊查询软件。

基于文件改变的病毒检测方法:通过被感染文件的长度或者日期和时间的改变来发泄病毒。

完整性检测方法:首先扫描硬盘,检查是否有病毒,当确信硬盘是干净的后,它才正式工作。它首先计算每个文件的检查和(或称校验和),然后再计算目录中所有相关文件的检查和,将所有这些检查和都写入一个检查和文件中,利用它们来对文件是否被病毒感染进行检查。等到下一次检测病毒时,完整性检测程序将重新计算所有文件的检查和,并分别与原来文件的检查和进行比较,若不匹配,就表明该文件已发生改变,由此可以认定该文件已被感染上病毒。
更好的方法是对检查和文件进行加密,而且可以采用智能卡技术,将加密密钥直接做在芯片上。

第十章 UNIX系统内核结构

UNIX系统概述

UNIX系统的特征
①开放性
②多用户、多任务环境
③功能强大且高效
④丰富的网络功能
⑤支持多处理器功能

UNIX系统的内核结构
UNIX核心的框图。
在这里插入图片描述
OS核心分成两大部分:进程控制子系统、文件子系统。
进程控制子系统:负责对四大资源中的两大资源——处理机和存储器进行管理。
功能:
①进程控制。
②进程通信。
③存储器管理。用于为进程分配物理存储空间。
③进程调度。采用的是动态优先数轮转调度算法。

进程的描述和控制

在UNIX系统Ⅴ中,采用了段页式存储管理方式。在该系统中把段称为区——Region。

进程控制块
在 UNIX 系统Ⅴ中,把进程控制块(PCB)分为四部分:
①进程表项
其中包括最常用的核心数据。为了提高对这些信息访问的效率,系统设计者将常被访问的信息放在进程表项中,又称之为Proc表或Proc结构,使之常驻内存。
②U区
用于存放用户进程表项的一些扩充数据。这部分数据并非常驻内存。
③系统区表
存放各个区在物理存储器中的地址信息等。
④进程区表
用于存放各区的起始虚地址及指向系统区表中对应区表项的指针。
核心可通过查找进程区表和系统区表,将区的逻辑地址变换为物理地址。

进程状态
进程的状态转换图。
在这里插入图片描述
(1)执行状态。
处于用户态执行时,进程所能访问的内存空间和对象受到限制,其所占有的处理机是可被抢占的;而处于核心态执行中的进程,则能访问所有的内存空间和对象,且所占用的处理机是不允许被抢占的。
(2)就绪状态。
这是指进程处于一种只需再获得处理机便可执行的状态。由于UNIX内核提供了对换功能,因而又可把就绪状态分为“内存中就绪”和“就绪且换出”两种状态。
(3)睡眠状态。
由于对换功能的原因又可将睡眠状态分为“内存睡眠”状态和“睡眠且换出”状态。当内存紧张时,在内存中睡眠的进程可被内核换出到外存上,相应地,此时进程的状态便由“内存睡眠”状态转换为“睡眠且换出”状态。
(4)“创建”与“僵死”状态。
创建状态是指利用fork系统调用来创建子进程时,被创建的新进程所处的状态;僵死状态是在进程执行了exit系统调用后所处的状态,此时该进程实际上已不存在,但还留下一些信息供父进程搜集。
(5)被抢占状态。
当正在核心态执行的进程要从核心态返回到用户态执行时,如果此时已有一优先级更高的进程在等待处理机,则此时内核可以抢占(剥夺)已分配给正在执行进程的处理机,去调度该优先级更高的进程执行。

进程映像
进程是进程映像(Process Image)的执行过程;或者说,进程映像也就 是正在运行进程的实体,它由三部分组成:
①用户级上下文
用户级上下文的主要成分是用户程序。它在系统中可分为正文区和数据区两部分。
②寄存器上下文
寄存器上下文主要是由CPU中的一些寄存器的内容所组成的。主要的寄存器有:程序寄存器、处理机状态寄存器(PSR)、栈指针、通用寄存器。
③系统级上下文
系统级上下文包括OS为管理该进程所用的信息,可分为静态和动态两部分。

进程控制
①fork系统调用
在UNIX的内核中设置了一个0进程,它是惟一一个在系统引导时被创建的进程。系统中除0进程外的所有进程都是用fork创建的。
核心需为 fork 完成下列操作:为新进程分配一个进程表项和进程标识符;检查同时运行的进程数目;拷贝进程表项中的数据;子进程继承父进程的所有文件;为子进程创建进程上下文;子进程执行。
②exec系统调用
用于将一个可执行的二进制文件覆盖在新进程的用户级上下文的存储空间上,以更新新进程的用户级上下文。
execⅤ系统调用所要完成的操作:对可执行文件进行检查;回收内存空间;分配存储空间;采纳数拷贝。
③exit系统调用
UNIX内核利用exit来实现进程的自我终止。
内核需为exit完成以下操作:关闭软中断;回收资源;写记账信息;置进程为“僵死”状态。
④wait系统调用
wait系统调用用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。

进程调度与切换
UNIX系统是单纯的分时系统,未设置高级调度——作业调度,只设置了中级调度——进程对换和低级调度——进程调度。
引起进程调度的原因
①UNIX系统是分时系统,因而其时钟中断处理程序须每隔一定时间便对要求进程调度程序进行调度的标志runrun予以置位,以引起调度程序重新调度。
②当进程执行了wait、exit及sleep等系统调用后要放弃处理机时,也会引起调度程序重新进行调度。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
程控制
①fork系统调用
在UNIX的内核中设置了一个0进程,它是惟一一个在系统引导时被创建的进程。系统中除0进程外的所有进程都是用fork创建的。
核心需为 fork 完成下列操作:为新进程分配一个进程表项和进程标识符;检查同时运行的进程数目;拷贝进程表项中的数据;子进程继承父进程的所有文件;为子进程创建进程上下文;子进程执行。
②exec系统调用
用于将一个可执行的二进制文件覆盖在新进程的用户级上下文的存储空间上,以更新新进程的用户级上下文。
execⅤ系统调用所要完成的操作:对可执行文件进行检查;回收内存空间;分配存储空间;采纳数拷贝。
③exit系统调用
UNIX内核利用exit来实现进程的自我终止。
内核需为exit完成以下操作:关闭软中断;回收资源;写记账信息;置进程为“僵死”状态。
④wait系统调用
wait系统调用用于将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。

进程调度与切换
UNIX系统是单纯的分时系统,未设置高级调度——作业调度,只设置了中级调度——进程对换和低级调度——进程调度。
引起进程调度的原因
①UNIX系统是分时系统,因而其时钟中断处理程序须每隔一定时间便对要求进程调度程序进行调度的标志runrun予以置位,以引起调度程序重新调度。
②当进程执行了wait、exit及sleep等系统调用后要放弃处理机时,也会引起调度程序重新进行调度。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-oVCd4RCt-1713243211960)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值