【软件评测师】02操作系统基础知识

#用于个人笔记整理

一、操作系统概述

1、计算机硬件、操作系统、其他系统软件、应用软件

计算机硬件是计算机的物理基础,操作系统是管理这些硬件的软件基础,系统软件和应用软件则在这个基础上运行,为用户提供各种服务和功能。其中,应用软件主要关注于特定任务的完成,而系统软件则更多地关注于计算机的整体管理和维护。

应用软件:

定义:专门为完成某项或多项特定任务的计算机程序。

例子:Word(文字处理)、Excel(电子表格)、Photoshop(图像处理)等。

功能:为用户提供特定的功能或服务,如编辑文档、处理数据或创建图像。

其他系统软件:

定义:除了操作系统之外的,用于管理、控制、维护计算机硬件和应用软件运行的软件。

例子:数据库管理系统(如MySQL)、设备驱动程序、网络管理软件等。

功能:提供对计算机硬件的抽象层,为应用软件提供必要的支持和服务,确保整个系统的稳定、高效运行。

操作系统:

定义:管理计算机硬件和应用软件的基础软件,是计算机的基本组成部分。

例子:Windows、Linux、macOS等。

功能:负责计算机资源的分配、调度,提供用户界面,以及与其他软件的交互。它确保了多个应用软件的并发执行,同时也为用户提供了与计算机硬件交互的接口。

计算机硬件:

定义:构成计算机的物理部件和设备的总称。

例子:中央处理器(CPU)、内存、硬盘、显示器、键盘等。

功能:执行计算机指令,存储和处理数据,为用户和应用软件提供必要的运行环境。

2、操作系统的作用

1)资源管理:

处理器管理:操作系统负责分配处理器的使用时间,确保多个任务或进程能够并发执行。

内存管理:操作系统负责内存的分配、回收和保护,确保每个程序都有足够的内存空间来执行,并且不会相互干扰。

硬盘管理:操作系统负责文件系统的管理,包括文件的创建、删除、读取、写入等操作,以及磁盘空间的分配和管理。

设备管理:操作系统管理计算机的各种输入/输出设备,如键盘、鼠标、显示器、打印机等,确保它们能够被正确地使用和访问。

2)提供用户界面:

操作系统为用户提供了图形用户界面(GUI)或命令行界面(CLI),使得用户可以方便地与计算机进行交互,执行各种任务。

3)任务管理:

操作系统负责创建、调度、执行和终止进程和线程,确保它们能够按照用户的意愿或系统的调度策略来运行。它还负责处理进程间的通信和同步,确保它们能够协调地工作。

4)安全性与保护:

操作系统通过访问控制、权限管理、加密等手段来确保系统的安全性,防止未经授权的访问和数据泄露。它还提供了错误检测和恢复机制,以确保系统的稳定性和可靠性。

5)系统维护:

操作系统提供了系统监控工具,帮助用户了解系统的运行状态和性能。它还负责系统的更新和升级,以修复漏洞、增强功能和提升性能。

3、操作系统的分类

1)批处理操作系统:

主要特点:用户将一批作业提交给操作系统后就不再干预,由操作系统自动控制和调度作业的执行。内存中可同时存放多个作业,通过时间上的重叠来提高系统吞吐量和资源利用率。

适用场景:适用于大型计算任务,例如科学计算、数据处理等,可以一次性处理大量作业,但用户无法实时与系统进行交互。

优点:提高系统吞吐量和资源利用率,通过多道程序设计和作业调度实现资源的共享和高效利用。降低用户干预,用户提交作业后,系统自动调度执行,无需用户实时干预。

缺点:无交互性,用户提交作业后无法实时控制其运行,不能及时处理作业错误。作业周转时间长,由于作业按顺序依次执行,可能导致等待时间较长。

2)分时操作系统:

主要特点:允许多个用户通过终端同时与计算机进行交互,操作系统通过时间片轮转的方式为每个用户分配CPU时间,实现多任务并发执行。

适用场景:适用于多用户环境,如大学实验室、办公室等,用户可以通过终端与系统进行实时交互,执行各种任务。

优点:用户请求可以被即时响应,允许多个用户同时使用一台计算机,实现人机交互。用户对计算机的操作相互独立,互不影响。

缺点:不能优先处理紧急任务,所有用户作业平等地分享系统资源。

3)实时操作系统:

主要特点:能够对外部事件或数据产生及时响应,处理结果能在规定时间内控制生产过程或对处理系统做出快速响应。

适用场景:适用于需要实时响应的场景,如工业控制、航空航天、军事等领域,确保系统对外部事件或数据能够做出快速且准确的反应。

优点:能够优先响应紧急任务,确保系统对外部信号或事件进行及时处理。具有高及时性和可靠性,特别适用于需要严格控制处理时间的场合。

缺点:硬实时系统对时间要求非常严格,可能导致系统复杂度增加和成本上升。

4)网络操作系统:

主要特点:基于互联网技术实现,连接不同的设备和用户,实现信息的共享和远程管理。

适用场景:适用于网络环境,如企业网络、校园网等,方便用户在网络中进行信息共享、数据传输和协同工作。

优点:集中式服务器稳定可靠,安全性高。易于远程访问和管理,支持不同位置和类型的系统之间的互操作性。可以方便地集成新技术和硬件到系统中。

缺点:购买和运行服务器的成本较高。依赖于中心位置,一旦中心位置发生故障,可能影响整个系统的运行。需要定期维护和更新,以确保系统的稳定性和安全性。

5)分布式操作系统:

主要特点:由多台计算机组成,它们在地域上是分散的,但功能上是相互协作的,形成一个统一的系统。

适用场景:适用于大型、复杂的计算任务,如分布式数据库管理、云计算等,通过将任务分配到不同的计算机上执行,提高系统的整体性能和可靠性。

优点:微处理机提供更好的性价比,整体计算能力更强。具有固定分布性,适用于空间上分散的机器。具有极强的可靠性,即使部分机器崩溃,整个系统仍可以继续运行。

缺点:软件开发较少,限制了其应用范围。通信网络问题可能影响系统的稳定性和性能。数据共享可能导致保密数据的安全风险增加。

6)微机操作系统:

主要特点:针对微型计算机设计的操作系统,通常具有较小的系统开销和较高的执行效率。

适用场景:适用于个人计算机或小型计算机环境,满足普通用户的日常使用和计算需求。

优点:用户界面友好,易于操作和使用。提供丰富的应用程序和功能,满足用户日常需求。通常具有良好的兼容性和稳定性。

缺点:某些操作系统可能较为昂贵。可能存在系统故障和安全漏洞,需要定期更新和维护。

7)嵌入式操作系统:

主要特点:以嵌入式计算机为技术核心,面向特定应用设计的操作系统,通常具有较小的系统内核和高效的资源利用率。

适用场景:适用于嵌入式系统,如智能家居、智能手机、医疗设备等,为这些设备提供稳定、可靠的运行环境。

优点:可裁剪、移植性好,适应不同硬件平台。强实时性和稳定性,满足嵌入式设备对时间敏感和可靠性的要求。功耗小,资源利用率高,适合长时间运行的设备。

缺点:系统资源有限,处理能力有限,实现的功能相对受限。对硬件依赖程度高,开发难度较大,需要专业人员。

二、P、V、S机制

1、进程控制

进程是操作系统中进行资源分配和调度的基本单位,它是程序执行时的一个实例。进程是程序的一次执行过程,是系统进行资源分配和调度的独立单位。每个进程都有独立的内存空间和系统资源。

进程控制的主要任务是创建和撤销进程,以及对进程在运行过程中的状态进行改变。这包括对进程的组织、管理和调度,确保它们能够协调、并发地执行。

常见的进程控制操作包括:

创建进程:操作系统根据系统进程创建原语为用户创建新进程。这通常涉及为新进程分配必要的资源,并设置其初始状态。

终止进程:由于某种原因,操作系统根据系统进程终止原语来结束进程。这可能是因为进程正常结束,或者因为出现了错误或异常。

阻塞进程:当进程需要等待某个事件(如I/O操作)完成时,操作系统会将其阻塞,使其暂时停止执行。当事件完成后,进程会被唤醒并继续执行。

唤醒进程:当之前被阻塞的进程所等待的事件完成时,操作系统会唤醒该进程,使其能够继续执行。

挂起进程:在某些情况下,操作系统可能会将进程挂起,即将其从内存中移出并保存到磁盘上。这通常是为了节省内存空间或进行其他资源管理操作。

激活进程:当需要恢复之前被挂起的进程时,操作系统会将其激活,即将其从磁盘加载回内存并恢复其执行状态。

2、原语

原语(Primitive)在操作系统和计算机科学中,通常指的是一种特殊的程序段,其执行期间不允许被中断。它具有原子性,即操作的不可分割性,要么全部完成,要么完全不执行。这种不可中断的操作也被称为原子操作。原语通常用于实现操作系统中的关键操作,如进程控制、同步和通信等。

3、互斥

互斥(Mutual Exclusion)是操作系统中用于保证并发执行的进程或线程之间不会同时访问共享资源的一种机制。当一个进程或线程正在访问某个共享资源时,其他进程或线程不能同时访问该资源,这就是互斥的基本含义。在并发系统中,多个进程或线程可能会尝试同时访问同一资源,如文件、内存区域或硬件设备等。如果没有适当的互斥机制,就可能发生数据不一致、冲突或损坏的情况。互斥确保了共享资源在任何时候都只被一个进程或线程访问,从而避免了这些问题。

4、同步

同步(Synchronization)主要指的是协调多个进程或线程的执行,以确保它们能够正确地访问和修改共享资源,从而避免数据不一致和其他并发问题。同步机制确保了在并发系统中,对共享资源的访问是顺序化的,即在一个时间点只有一个进程或线程可以访问某个特定的资源或执行某个特定的代码段(临界区)。这有助于防止竞态条件(Race Condition)的发生,竞态条件是指两个或多个进程或线程在访问共享数据时,由于它们的执行顺序不确定而导致的结果不一致

5、临界资源

临界资源是指一次仅允许一个进程使用的共享资源。这些资源可能是硬件资源,如打印机、磁带机等,也可能是软件资源,如消息缓冲队列、变量、数组、缓冲区等。为了避免多个进程同时访问临界资源,需要采取互斥的方式来实现资源的共享。

6、临界区

临界区则是指一段访问共享资源(如共用设备或共用存储器)的程序片段。当一个线程或进程进入临界区时,其他线程或进程必须等待,直到该线程或进程退出临界区。临界区的目的是确保共享资源在并发访问时的正确性,避免竞态条件等并发问题的出现。每个进程中访问临界资源的那段代码称为临界区。为了保证诸进程互斥地进入自己的临界区,从而实现对临界资源的互斥访问,每个进程在进入临界区之前,应先对欲访问的临界资源进行检查,看它是否正被访问。如果此刻该临界资源未被访问,进程便可进入临界区对该资源进行访问,并设置它正被访问的标志;如果此刻该临界资源正被某进程访问,则本进程不能进入临界区。

7、P、V、S机制

1)信号量S

信号量:信号量(Semaphore)是一个整型的变量,其值会根据不同的环境发生变化。信号量通常用于防止多个线程同时访问共享资源,从而避免数据冲突和不一致的问题。

当信号量的值大于零时,它表示当前可用的资源数量。具体来说,这个值通常代表当前可以访问的共享资源的数量。在这种情况下,线程或进程在尝试获取资源时,会执行P操作(也称为wait或down操作)。如果信号量的值大于零,那么线程或进程将能够成功获取资源,并将信号量的值减一。

当信号量的值小于零时,它表示当前等待使用该资源的线程或进程的数量(通常是其绝对值)。也就是说,有多个线程或进程正在尝试获取资源,但由于资源当前不可用,它们被阻塞在等待队列中。在这种情况下,任何尝试执行P操作的线程或进程都会因为无法获取资源而被阻塞,直到信号量的值变为非负。当某个线程或进程释放资源(通常通过V操作,也称为signal或up操作)时,它会增加信号量的值。如果此时信号量的值从负变为非负,那么等待队列中的一个或多个线程或进程将被唤醒,它们可以继续执行并尝试获取资源。

公用信号量(Public Semaphore)主要用于实现不同进程间或不同进程中的各线程之间的同步。它有一个公开的名字供所有进程使用,因此被称为公用信号量。其数据结构存放在受保护的系统存储区中,由操作系统(OS)为其分配空间并进行管理,因此也被称为系统信号量。如果信号量的占有者在结束时未释放该公用信号量,OS会自动将该信号量空间回收,并通知下一进程,这使得公用信号量成为一种比较安全的同步机制。

私用信号量(Private Semaphore)则是为同一进程中的各线程之间的同步而设置的。它存放在应用程序的地址空间中,属于特定进程所有,因此OS并不知道其存在。私用信号量的初值可以是0或者某个正整数,仅允许拥有它的进程对其执行P/V操作。然而,私用信号量存在一些问题。例如,一旦发生私用信号量的占用者异常结束或正常结束,但并未释放该信号量所占有空间的情况时,系统将无法使它恢复为0(空),也不能将它传送给下一个请求它的线程。

2)P、V操作

P操作和V操作是信号量机制中的两种基本操作,用于实现对共享资源的同步与互斥访问。这两个操作的名字分别来自荷兰语的Proberen(测试)和Verhogen(增加)。

P操作(也称为wait或down操作)

功能:请求一个资源。

操作:

    如果信号量的值大于0,表示有可用资源,则执行以下步骤:

        将信号量的值减1。

        进程继续执行。

    如果信号量的值为0,表示没有可用资源,则执行以下步骤:

        进程进入阻塞状态,并将其加入到信号量的等待队列中。

        等待其他进程释放资源,即信号量的值变为非0。

V操作(也称为signal或up操作)

功能:释放一个资源。

操作:

    将信号量的值加1。

    如果信号量的等待队列中有阻塞的进程,则唤醒其中一个进程(通常是根据某种调度策略选择),使其从阻塞状态变为就绪状态。

通过P操作和V操作,可以实现对共享资源的互斥访问,确保在任何时刻只有一个进程能够访问特定的共享资源。同时,它们也可以用于实现进程间的同步,确保进程按照预定的顺序执行。

在实际应用中,信号量和P、V操作被广泛用于多线程或多进程环境中,以解决资源竞争和同步问题。P操作和V操作必须成对出现,这两个操作在信号量机制中起着关键作用,用于实现对共享资源的同步与互斥访问,以保持信号量值的正确性和系统的稳定性。P操作用于请求资源,如果资源可用则进程继续执行,否则进程进入阻塞状态,如果只执行了P操作而没有对应的V操作,可能会导致资源无法被正确释放,从而造成死锁或资源耗尽的问题。同样地,V操作用于释放资源,唤醒等待队列中的一个或多个进程。如果只执行了V操作而没有对应的P操作,可能会导致资源的非法访问或数据不一致的问题。因此,P操作和V操作通常是配套使用的,以确保资源的正确获取和释放。

先判断是互斥还是同步,再根据P、V操作的下一个语言判断P、V操作的信号量对象是在干什么

多个进程共享一台打印机问题:

互斥信号量S的初始值为1

P(S);

使用打印机;

V(S);

后续代码;

单缓存区生产者、消费者问题:同步

S1初始值为1,S2初始值为0

生产者:

生产一个产品;

P(S1);

送产品到缓冲区;

V(S2);

消费者:

P(S2);

从缓冲区取商品;

V(S1);

消费商品;

考点一:信号量的变化范围

题目:假设系统有n(n>5)个并发进程,他们竞争互斥资源R。若采用PV操作,当有3个进程同时申请资源R,而系统只能满足其中1个进程的申请时,资源R对应的信号量S的值应为:-2

解答:资源R只能满足一个进程的申请,信号量初始值为1,三个进程同时申请,1-3=-2

考点2:信号量的类型及初始值

题目:某企业的生产流水线上有2名工人P1和P2,1名检验员P3。P1将初步加个的半成品放入半成品箱B1,P2从半成品箱B1取出继续加工,加工好的产品放入成品箱B2,P3从成品箱B2取出产品检验。假设B1可存放N件半成品,B2可存放M件半成品,并且设置6个信号量S1、S2、S3、S4、S5、S6,且S3和S6的初始值为0,采用PV操作实现P1、P2、P3的同步模型如下图所示,则信号量S1、S5是互斥信号量,S1、S5初始值为1,S2的初始值为n,S4的初始值为m

解答:先判断出S1和S5是互斥信号量,得出S1、S5的初始值是1,S2、S4是同步信号量,根据题目得出S2的初始值为n,S4的初始值为m

三、三态模型

1、就绪态、等待态(阻塞态、睡眠态)、运行态

三态模型是一种用于描述进程在操作系统中状态的模型,它将进程状态划分为三种:就绪态、等待态和运行态。以下是关于这三种状态的详细解释:

就绪态:当进程已经满足了所有运行的条件,但是由于CPU已经被其他进程占用,它还没有获得执行的机会时,该进程处于就绪态。进程在就绪态中等待分配给它的时间片,一旦分配到CPU,进程就会进入运行态。就绪进程可以按多个优先级来划分队列,比如,当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

等待态:也称为阻塞态或睡眠状态,当进程由于等待某些事件的发生而无法继续执行时,例如等待用户输入、等待I/O操作完成或等待某个资源的释放,该进程处于等待态。进程在阻塞态中暂时被挂起,直到所需的事件发生,然后进程可以进入就绪态等待分配CPU资源。

运行态:当进程正在执行其指令,占用CPU资源并执行任务时,该进程处于运行态。在单处理机系统中,处于运行状态的进程只有一个。当运行态的进程缺乏运行条件时,会进入等待态;而当其CPU资源被剥夺(例如,时间片用完),就会进入就绪态。

进程在运行态、就绪态和阻塞态之间转换的过程称为进程调度,这是操作系统管理进程的重要方式,以确保系统资源的有效利用和任务的顺利执行。

考点一:三态模型各形态的转换

题目:在进程状态转换过程中,可能会引起进程阻塞的原因是:执行P操作

解答:执行完P操作后,没有获得资源,进入等待态

四、死锁

1、死锁

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞现象。若无外力作用,这些进程都将无法推进下去,此时称系统处于死锁状态,这些永远在互相等待的进程称为死锁进程。

2、死锁产生的四个必要条件

1)互斥条件:资源是独占的且排他使用,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。

2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。即进程每次申请它所需要的一部分资源,在申请新的资源的同时,保持已分配到的资源。

3)不剥夺条件(或称为不可剥夺条件):进程已获得的资源,在未使用完之前,不能强行剥夺。

4)循环等待条件:在发生死锁时必然存在一个进程等待队列{P1,P2,…,Pn},其中P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源,形成一个进程等待环路。环路中每一个进程所占有的资源同时被另一个申请,即前一个进程占有后一个进程所申请的资源。

3、死锁的预防

死锁的预防是通过确保系统不会同时满足死锁的四个必要条件来防止死锁的发生。这通常涉及到对系统资源和进程行为的严格管理和控制。以下是如何打破死锁的四个条件的具体方法:

1)打破互斥条件:允许多个进程共享某些资源,而不是独占。这可以通过使用读写锁、共享内存等技术实现,使得多个进程可以同时访问某些资源,但需要注意的是,并非所有资源都可以共享,有些资源由于其本身的性质(如某些硬件资源)必须保持独占性。

2)打破请求与保持条件:进程在申请资源时,必须一次性申请完所有需要的资源,如果资源不足则等待,只有在拥有所有所需资源时才能开始执行。这样可以防止进程在持有部分资源的情况下等待其他资源,从而导致死锁。

3)打破不可剥夺条件:如果进程已持有某些资源,但在其执行过程中又请求了新资源,而该资源被其他进程所持有,则操作系统可以强行剥夺该进程已分配的资源,从而满足其他进程的请求。这种做法需要谨慎,因为可能导致被剥夺资源的进程无法继续执行。

4)打破循环等待条件:为资源类型编号,规定每个进程必须按编号递增的顺序请求资源。这样,进程之间的资源请求就不会形成循环,从而避免了循环等待条件。

4、死锁的避免

死锁的避免则是通过一些算法和策略来确保系统即使有可能满足死锁的四个条件,也不会真正进入死锁状态。其中,有序资源分配法和银行家算法是两种常用的方法。

1)有序资源分配法:通过为资源分配一个固定的顺序,确保所有进程都按照相同的顺序请求资源。这样,即使多个进程同时请求资源,也不会形成循环等待,从而避免了死锁。

2)银行家算法:借鉴银行家贷款的策略,确保在分配资源之前,系统始终处于安全状态。银行家算法会检查每个进程的资源需求,如果分配资源后系统仍然处于安全状态,则进行分配;否则,拒绝分配并等待更多资源释放。通过这种方式,银行家算法可以有效地避免系统进入死锁状态。

5、系统不发生死锁所需的最小资源数公式

最小资源数 = (每个进程所需要的资源数-1)的总和+1

考点一:不发生死锁的最小资源数计算

题目:若系统中有4个互斥资源R,当系统中有2个进程竞争资源R,且每个进程都需要i个R 时,该系统可能会发生死锁的最小i值是3

解答:2*(i-1)+1=<4时,系统不发生死锁,即i<=2.5时系统不发生死锁

所以当i=3时发生死锁

考点二:银行家算法

题目:假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为10、5和3。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示,此时系统剩余的可用资源数分别为 (1)。如果进程按(2)序列执行,那么系统状态是安全的。(1)2、0、1 (2)P5、P2、P4、P3、P1

解答:(1)R1目前8个,还剩下2个;R2目前5个,剩下0个;R3目前2个,剩下1个

(2)将201加到已分配资源上,只有P5得到满足,第一个进程是P5,然后P5得到释放,将已分配资源数加到201上,得到311,重复这个步骤,得到P5、P2、P4、P3、P1

五、进程资源图

1、进程资源图

进程资源图是一种用于表示进程和资源之间分配和请求关系的直观工具。在图中,P代表进程,R代表资源。R方框中的圆球数量表示该资源的数量,箭头则用来表示资源的分配和进程对资源的申请。资源先分配资源给进程,进程再向资源申请资源。

图1:进程P1

图2:资源R,里面有3个资源

图3:进程P1向资源R申请3个资源

图4:资源R向进程分配一个资源

图5:资源R向进程P1分配1个资源,然后资源p1再想资源R申请一个资源

图6:资源R先向进程P1、P2、P3各分配一个资源,剩余0个资源,然后进程P1向资源R申请1个资源,造成阻塞,P2成为阻塞点

考点1:进程资源图的应用

题目:阻塞节点是:P1、P2

解答:资源R1向P1、P3个释放一个资源,还剩下0个资源,P2向R1申请一个资源,造成阻塞;资源R2向P1、P2、P3各释放一个资源,剩余0个资源,P1向R2申请一个资源,造成阻塞;资源R3向P2释放一个资源,还剩下1个资源,P3向P2申请一个资源,资源分配给P3,不造成阻塞

六、文件管理

1、文件系统按名存取

文件文件系统按名存取是指用户可以通过文件名来访问和操作文件,而无需了解文件在物理存储设备上的具体位置和存储细节。这种机制的实现依赖于文件系统的目录结构和文件控制块(FCB)。

首先,每个文件在文件系统中都有一个唯一的文件名。当用户想要访问或操作某个文件时,只需提供该文件的文件名。文件系统接收到文件名后,会在目录结构中查找与该文件名对应的文件控制块(FCB)。这个查找过程是通过遍历目录树或目录表来完成的,直到找到与给定文件名匹配的目录项。

文件控制块(FCB)是文件系统中用于描述文件属性和状态的数据结构。它包含了文件的元数据信息,如文件大小、创建时间、修改时间、权限设置以及文件在物理存储设备上的具体位置等。通过查找文件控制块,文件系统能够获取到文件的这些关键信息。

一旦文件系统找到了与文件名对应的文件控制块,它就可以根据文件控制块中的物理地址信息,定位到文件在物理存储设备上的具体位置。然后,文件系统可以执行各种文件操作,如读取文件内容、写入数据到文件、修改文件属性等。

总的来说,文件系统按名存取的核心思想是将文件名与文件的实际存储位置进行映射。通过目录结构和文件控制块的组织,文件系统实现了文件名到文件物理地址的转换,从而使用户能够方便地通过文件名来访问和操作文件。这种机制简化了文件访问的过程,提高了文件系统的易用性和灵活性。

考点一:文件系统

题目:操作系统通过文件目录和目录项来组织和管理外存中的信息。

解答:字处理程序是word、WPS之类的软件。设备驱动程序是硬件驱动的程序。语言翻译程序是翻译如Java之类语言的程序。

2、多级目录结构

在计算机文件系统中,路径是用来指定文件或目录在文件系统中位置的一种方式。绝对路径和相对路径是两种不同的指定路径方式,它们各自具有不同的特点和使用场景。

1)绝对路径

绝对路径是从文件系统的根目录开始,指定文件或目录的路径。它包含从根目录到目标文件或目录的所有路径信息,可以唯一地定位文件或目录。例如,在类Unix系统上,文件/usr/bin/python是一个绝对路径,指向位置/usr/bin/python。绝对路径的特点是明确、确定,不会引起歧义。

2)相对路径

相对路径则是从当前目录开始,指定文件或目录的路径。它只包含当前目录和目标文件或目录之间的路径,不包含完整的路径信息。相对路径是相对于当前工作目录而言的,所以如果工作目录改变了,相对路径可能会指向不同的文件或目录。相对路径的特点是简洁、灵活,但是在不同的工作目录下可能会引起歧义。相对路径通常使用"."和".."来表示当前目录和上一级目录。

考点二:确定绝对路径和相对路径

题目:

解答:(1)D:\Document\Java-prog\f1.java

(2)Java-prog\或者.\Java-prog\

3、示位图

示位图(bitmap),也被称为位图,是一种非常常用的数据结构。它的最小单元是一个bit,每个bit有两种取值:1或0。这种二进制的一位被用来表示磁盘中的一个盘块的使用情况。当值为“0”时,表示对应的盘块是空闲的;当值为“1”时,表示该盘块已经被分配。实际上,有的系统可能会将“0”作为盘块已分配的标记,将“1”作为空闲标志,但这并不改变其本质,即用一位的两种状态来标志空闲和已分配两种情况。

考点一:示位图的相关计算

某文件管理系统采用位示图(bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、2、位示图字依次编号为:0、1、2、那么16385号物理块的使用情况在位示图中的第 (1)个字中描述;如果磁盘的容量为1000GB,那么位示图需要(2)个字来表示。 (1)512 (2)8000

解答:一bit被用来表示磁盘中的一个盘块的使用情况,系统的字长为32位,即1字节=32b,每个字可以表示32个物理块,从0开始排位,(16385+1)/32=512.03,所以是第512-1+1=512个字;1000GB=1000*1024MB 1000*1024/4=256000个磁盘物理块

所以需要256000b=8000字

七、存储管理

1、储存管理分类

1)分区存储管理:

原理:将主存空间划分为若干个大小不等的区域,每个区域可以装入一个作业或进程。这些区域可以是固定大小的(固定分区法),也可以是动态变化的(动态分区法)。

特点:易于实现,但可能存在内部碎片(固定分区)或外部碎片(动态分区)。

适用场景:适用于早期简单多道程序系统。

2)分页存储管理:

原理:将主存空间划分为大小相等的页面,同时将用户程序的地址空间也划分为与页面大小相等的块,称为逻辑页面。页面可以动态地分配和回收。

特点:提高了内存利用率,减少了碎片,但每次访问内存都需要进行页表查找,可能导致性能下降。

适用场景:适用于需要提高内存利用率和减少碎片的场景。

3)分段存储管理:

原理:将用户程序的地址空间划分为若干个大小不同、具有不同用途及保护属性的逻辑段,每个逻辑段与物理内存中的一段连续空间相对应。

特点:能够有效地解决用户程序的不同需求,提高系统的安全性和稳定性。但每次访问内存都需要进行段表查找,可能影响性能。

适用场景:适用于需要按逻辑意义分段存储数据的场景。

4)段页式存储管理:

原理:结合了分段和分页的思想,先将用户程序划分为若干个逻辑段,再把每个段划分为若干个大小相等的页。

特点:具有分段和分页的优点,如空间浪费小、存储共享容易、存储保护容易等。但同时也存在页表和段表的查找开销。

适用场景:适用于大型复杂系统,既需要分段管理以提高安全性和稳定性,又需要分页管理以提高内存利用率。

5)虚拟存储管理:详细见 【软件评测师】01计算机系统构成及硬件基础知识

原理:利用外存作为内存的扩充部分,当用户程序需要执行时,只将当前需要的一部分程序和数据装入内存,其余部分留在外存。当需要执行外存中的代码或数据时,再从外存调入内存。

特点:为用户提供了一个比实际内存大得多的虚拟内存空间,提高了内存的利用率和系统的性能。

适用场景:适用于内存资源有限但需要运行大型程序的场景。

2、分区存储管理

1)分区存储管理分类

(1)固定分区:

特点:将主存空间预先划分为若干个大小不等的连续区域,每个区域的大小固定不变。这些区域在系统启动时就已经确定,并且在使用过程中不会改变。

优点:实现简单,开销小,能够支持多道程序设计。

缺点:存在内部碎片,即分区内部未被利用的空间。如果进程大小与分区大小不匹配,会导致空间浪费。此外,分区总数固定,限制了并发执行的程序数量。

(2)可变分区:

特点:在作业要求装入内存时,根据作业的大小和当时内存空间的使用情况动态地划分分区。分区的大小和位置不是预先固定的,而是根据作业需求来决定的。

优点:克服了固定分区方式中由于分区内部剩余内存空置造成的浪费问题,提高了内存的利用率。

缺点:存在外部碎片,即难以利用的小空闲分区。此外,由于需要动态地划分和回收分区,管理开销相对较大。

(3)可重定位分区:

特点:允许程序在内存中移动,以便将多个程序紧凑地装入内存,从而减小内存碎片。当内存中的空闲分区不能满足作业需求时,可以通过移动已在内存中的作业来腾出足够的连续空间。

优点:提高了内存的利用率,减少了碎片。

缺点:实现复杂,需要额外的硬件和软件支持来实现地址重定位。此外,移动作业可能导致性能下降,因为需要复制和更新数据。

2)分区存储管理内存分配策略

最佳适应算法(Best Fit):能够选择最小但与请求大小相近的空闲分区进行分配。

最差适应算法(Worst Fit):从全部空闲区中找出能满足作业要求的、且大小最大的空闲分区进行分配。

首次适应算法(First Fit):按照空闲分区的顺序查找,找到第一个能满足要求的空闲分区就进行分配。

循环首次适应算法(Next Fit):在首次适应算法的基础上,通过记录上一次查找结束的位置,下次查找时从上一次查找结束的位置开始,直到找到一个能满足要求的空闲分区。

3、分页存储管理

分页存储管理是一种内存管理技术,它将主存(RAM)划分成大小相等的固定块,每个块称为页。同时,进程的虚拟地址空间也被划分成相同大小的页框,每个页框称为帧。通过这种方式,将进程的虚拟地址空间划分成许多固定大小的逻辑块,实现了对内存的分页管理。 页表是一种特殊的数据结构,它放在系统空间的页表区,用于存放逻辑页与物理页帧的对应关系。

在分页存储管理中,虚拟地址(或逻辑地址)被划分为两部分:页号和页内地址。这种划分方式使得操作系统能够高效地管理内存,并快速地将虚拟地址转换为物理地址。

页号(Page Number):

页号用于标识进程的哪一页被请求。它占据了虚拟地址的高位部分。通过页号,系统可以在页表中找到对应的页框(物理内存块)号。页表是一个数据结构,它记录了每个页号对应的物理内存中的页框号。因此,页号实际上是一个索引,用于在页表中查找相应的物理内存地址。页号的位数决定了内存被化为多少页。

页内地址(Offset):

页内地址是虚拟地址的低位部分,它指定了所需数据在页内的相对位置。当页号被用来找到对应的物理页框后,页内地址就直接用来定位该页框内的具体数据位置。页内地址的大小通常与页的大小相对应,即一个页可以容纳多少字节的数据,页内地址就有多少位来表示这些数据的位置。页内地址的位数决定了每一页的大小。

考点一:页式存储地址结构

题目:某计算机系统采用页式存储管理方案,假设其地址长度为32位,其中页号占20位,页内地址占12位。系统中页面总数与页面大小分别为(1)。

(1)1M 4K

解答:页内地址12位,212=4K 页号20位,220=1M

考点二:页式存储地址转换

题目:某计算机系统页面大小为4K,进程P的页面变换表如下表所示。若P中某数据的逻辑地址为十六进制2C18H,则该地址的页号和页内地址分别为(1);经过地址变换后,其物理地址应为十六进制(2)。 )(1)2、C18 (2)5C18

页号

物理块号

0

2

1

4

2

5

3

8

解答:某计算机系统页面大小为4K,12位表示页内地址,逻辑地址为十六进制2C18H,所以是16位表示,16-12=4位表示页号,所以C18是页内地址,2是页号;经过地址变换时,页内地址不变,页号变成物理块号,所以2C18变成5C18

4、分段存储管理

分段存储管理是一种基于段的虚拟内存管理方式,它将逻辑地址空间划分为若干个段,每个段表示一段具有相同逻辑含义的程序或数据。这种管理方式的主要目的是满足用户应用的需要,强调段的逻辑完整性。

在分段存储管理中,每个段都有自己的段号和长度,这些段号和长度信息会被记录在段表中。当程序需要访问某个段时,会给出该段的逻辑地址,操作系统则根据这个逻辑地址查找对应的段表项,从而得到该段在内存中的起始地址和长度。之后,操作系统会将逻辑地址转换为物理地址,即加上该段的起始地址,得到真正的物理地址。

段号的位数决定了内存最多被化为多少段。段内地址的位数决定了划分的段最多的大小。

5、段页式存储管理

段页式存储管理是一种结合了分段存储管理和页式存储管理技术的内存管理方法。它将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。在实现段页式存储管理时,每个段的页表项会记录该段中每个页的物理地址。当需要访问某个逻辑地址时,系统首先通过段号找到对应的段表项,然后根据页号找到该页的物理地址,最后结合页内地址形成完整的物理地址。

段号的位数决定了内存最多被化为多少段。页号的位数决定了每一段最多被划分为几页,页内地址的位数决定了每一页的大小。

考点一:段页式存储的地址结构

题目:假设段页式存储管理系统中的地址结构如下图所示,则系统中(1)。

(1)页的大小为4K,每个段最大(不是均有)允许有4096个页,最多可有256个段

解答:段号的位数决定了内存最多被化为多少段。页号的位数决定了每一段最多被划分为几页,页内地址的位数决定了每一页的大小。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值