牛客刷题难点易错点总结-操作系统1

牛客刷题难点易错点总结-操作系统1

单道程序系统几个特点:

1. 资源独占性

任何时候,位于内存中的程序可以使用系统中的一切资源,不可能有其他程序与之竞争

2. 执行的顺序性

内存中只有一个程序,各个程序是按次序执行的。在做完一个程序的过程中,不可能夹杂进另一个程序执行

3. 结果的可再现性

只要执行环境和初始条件相同,重复执行一个程序,获得的结果总是一样的

4. 运行结果的无关性

程序的运行结果与程序执行的速度无关。系统中的作业以串行的方式被处理,无法提高CPU、内存的利用率

本来就是有序的,故不需要同步互斥

UNIX系统的一些特点:

多用户、多进程,属于分时操作系统。 因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。 现在其仍然被应用于一些对稳定性要求极高的数据中心之上。 UNIX重要的设计原则:

简洁至上、提供机制而非策略。

立即寻址:指令中直接提供源操作数,即操作码后面直接跟着参与操作的数。

直接寻址:在直接寻址方式中,操作码后面直接给出的是操作数的地址(内部RAM存储单元的地址)。

寄存器寻址:该寻址方式,操作数存放在寄存器(R1~R7)中,指令中给出寄存器名。

寄存器间接寻址:该寻址方式,用工作寄存器(R0、R1、DRTR)给出存储单元的地址,而操作数存放在片内或片外RAM中。指令中寄存器名前要加@。寄存器间接寻址用于访问片内RAM和片外RAM.

进程的同步(Synchronization)是解决进程间协作关系( 直接制约关系) 的手段。

进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一个协作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。

操作系统可以执行一些特权指令,而用户想要执行这些指令时需要通过系统调用让操作系统代为执行,故系统调用只是一个方法,真正执行的还是操作系统本身,所以操作系统最接近硬件

关于僵尸进程和孤儿进程:

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

如何处理:

孤儿进程将由init接管,成为init的子进程,然后回收资源。

僵尸进程的危害主要是占用进程描述符。在出现大量僵尸进程的时候,系统会杀死产生僵尸进程的父进程(因为僵尸进程的产生主要是因为父进程出错,没有获取子进程的状态)。在杀死父进程后,僵尸进程就会全部变成孤儿进程,由Init接管,回收资源

DMA方式也称为直接主存存取方式,其思想是:允许主存储器和I/O设备之间通过“DMA控制器(DMAC)”直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预

独立监督式特点:

  1. 每个处理机将按自身的需要及分配给它的任务的需要来执行各种管理功能,这就是所谓的独立性

  2. 由于有好几个处理机在执行管理程序,因此管理程序的代码必须是可重入的,或者为每个处理机装入专用的管理程序副本

  3. 因为每个处理机都有其专用的管理程序,故访问公用表格的冲突较少,阻塞情况自然也就较少,系统的效率就高。但冲突仲裁机构仍然是需要的

  4. 每个处理相对独立,因此一台处理机出现故障不会引起整个系统崩溃。但是,要想补救故障造成的损害或重新执行故障机未完成的工作非常困难

  5. 每个处理机都有专用的I/O设备和文件等

  6. 这类操作系统适合于松耦合多处理机体系,因为每个处理机均有一个局部存储器用来存放管理程序副本,存储冗余太多,利用率不高

  7. 独立监督式操作系统要实现处理机负载平衡更困难

正在运行的是程序放在内存的,程序的数据和指令是预加载进寄存器的

SPOOLing 技术:它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。

完成I/O进入就绪队列的进程尚未执行,不能降低其优先级;长期处于就绪队列的进程应提高其优先级;进程刚刚转入运行态,也不应降低其优先级;当进程的时间片用完,调度程序需要调度其他程序进入处理机执行,此时降低进程优先级是合理的。

1、进程控制块是操作系统管理进程设置的一个专门的数据结构。包含进程id Pid、控制信息、CPU现场信息等等。系统可以利用PCB来控制和管理进程;

2、当创建进程时,该进程需要系统准备好一定的资源(内存、文件、I/O 设备等),用于完成进程任务;

3、所有准备就绪,进程进入就绪队列准备被CPU调度,进程创建完毕;

CPU的分配是等到这个进程真正被执行的时候才需要,创建这个进程所需要的CPU都是其父进程的。

并发是同一时间,在单处理器上运行,并行是同一时间内,在不同处理器上运行

程序局部性原理,是指程序在执行时呈现出局部性规律,即在一段时间内,整个程序的执行仅限于程序中的某一部分。相应地,执行所访问的存储空间也局限于某个内存区域。

  1. 不算初始和终止,状态一共分为:就绪,运行,等待(阻塞);

  2. 状态转换流程:开始–>就绪–>运行–>阻塞–>结束,

也可以没有阻塞,运行完就结束。

  1. 唯一的例外:

时间片轮转中,当时间片用完,就会从运行态转换为就绪态。

(1)一个作业可以由多个进程组成,且必须至少由一个进程组成,

(2)进程是动态的,

(3)一个作业通常包括程序、数据和操作说明书三部分。每一个进程由pcb、程序和数据集合组成。

(4)程序是进程的一部分,是进程的实体。

一个程序可以启动多个进程,一个程序的执行可能有多个进程的参与,多个进程的协作共同执行这个程序。

一个作业可以划分为若干个进程来实现,而每一个进程有其实体–程序和数据集合。

你可能感兴趣的:(牛客刷题,windows)