- 线程包含CPU现场,可以独立执行程序。
- 进程获得处理器运行是通过调度得到的。
- 优先级分为动态和静态两种,动态优先级是根据运行情况而随时调整的。
- 在进程的整个生命周期中,系统总是通过PCB对进程进行控制,系统是根据PCB而非其他任何因素来感知进程的存在,PCB是进程存在的唯一标志,同时PCB常驻内存。
- 程序封闭性是指程序执行的结果只取决于进程本身,不受外界影响,即进程的执行速度不影响最终的结果,失去封闭性后,不同速度下的执行结果不同。
- 进程有它的生命周期,不会一直存在于系统中,也不一定需要用户显示的撤销。
- 进程在时间片结束时只是变为就绪态,而不是撤销。
- 阻塞和唤醒是进程生存期的中间状态。
- 进程在完成时撤销或者出现内存错误时撤销。
- 引入线程后,进程仍然是资源分配的单位,线程是处理器调度和分配的单位。
- 线程本分不具有资源,它可以共享所属进程的全部资源。
- C语言编写的程序在使用内存时一般分为三段:正文段(二进制代码和常量,即代码和已赋值变量)、数据堆段 (动态分配存储区)和数据栈段(临时使用变量,即未赋值的局部变量和实参传递)。
- 进程至少由代码、数据和PCB组成,程序仅需代码和数据即可,程序代码经过多次创建可对应不同的进程,而同一系统的进程(或线程)可以由系统调用的方法被不同的进程(或线程)多次使用。
- 设备分配是通过在系统中设置相应的数据结构实现的,而不需要创建进程,这是操作系统I/O核心子系统的内容。
- 线程是进程内一个独立的执行单位,但不能脱离进程单独运行,只能在进程运行中运行。引入线程是为了减少程序执行时的时空开销。
- 同一进程或不同进程内的线程都能并发执行。
- 进程申请读磁盘操作时,因为要等待I/O操作完成,会把自身阻塞(主动),此时进程变为阻塞态,I/O操作完成后,进程得到了想要的资源,会从阻塞态转换为就绪态(操作系统的行为)。
- 管道只能存在于内存,管道的数据一旦读出即消失,因此只能有一个读进程但写进程可能有多个。
- SJF调度算法的平均等待时间、平均周转时间最小。
- FCFS调度算法特点:算法简单但效率低,多长作业有利,对短作业不利(相对于SJF和高响应比),有利于CPU繁忙型作业,不利于I/O繁忙型作业。
- I/O型进程 > 计算型进程 : 因I/O设备的处理速度比CPU慢的多,因此若将I/O型的进程的优先级设置的更高,就有可能让I/O设备尽早开始工作,进而提升系统的整体效率。
- 在动态优先权中,随着进程执行时间的增加,其优先权随之降低。随着进程等待时间的增加,其优先权随之上升。
- 时间片轮转算法是按固定的时间配额来运行的,时间一到,不管是否完成,当前的进程必须撤下,调度新的进程,由此它是由时间配额决定的,是绝对可抢占的。
- 作业是从用户角度出发的,它由用户提交,以用户任务为单位。进程是从操作系统出发的,由系统生成,是操作系统的资源分配和独立运行的基本单位。
- 时钟中断是系统特定的周期性时钟节拍,操作系统通过它来确定时间间隔,实现时间的延时和任务的超时。时钟中断发生后,系统会修改时间片内的剩余时间。
- 中断向量本身是中断服务例行程序的入口地址,中断向量地址是中断服务例行程序入口地址的地址。
- 中断发生时,由硬件保护并更新程序计算器(PC),而不是软件完成,主要保证系统运行可靠正确。
- 当进程处于临界区时,说明进程正在占用处理机,只要不破坏临界资源的使用规则,就不会影响处理机的调度。
- 管程的基本特征:①局部于管程内的数据只能被局部于管程的过程访问。②一个进程只能通过调用管程内的过程才能进入管程访问共享数据。③每次仅允许一个进程在管程内执行某个内部过程。
- 进程进入临界区必须满足互斥条件,当进程进入临界区但尚未离开时就被迫进入阻塞是可以的,系统中经常出现这样的情形,在此状态下,只要其他进程在运行过程中不寻求进入该进程的临界区,就应该允许其运行,即分配CPU。
- 临界资源与共享资源的区别在于在一段时间内能否被多个进程访问(并发使用)。显然磁盘属于共享设备。公用队列属于临界资源,虽可供多个多个进程使用,但一次只可供一个进程使用,试想若多个进程同时使用公用队列,势必造成数据混乱而无法使用。可重入的程序代码一次可供多个进程使用。
- 在操作系统中,PV操作时一种低级进程通信原语,不可被打断。
- 共享程序段可能同时被多个进程使用,所以必须可重入编码,否则无法实现共享的功能。? (可重入编码:一中允许多个进程同时访问的代码,为了使各进程执行的代码完全相同,故不允许任何进程对其修改)
- 信号量机制中的V操作一定会改变信号量的值s=s+1,而管程中的sinal是针对某个条件变量的,若不存在因该条件而阻塞的进程,则sinal不会产生任何影响。
- 记录型信号量:①s.value>0 表示某类可用资源的数量,每次P操作意味着分配一个单位的资源。②s.value≤0,表示某类资源已经没有,或者说还有因请求而被阻塞的进程。③s.value≤0时的绝对值,表示等待进程的数目。
- 并非所有的不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进入死锁状态。反之,只要系统在安全状态,系统便可避免进入死锁状态。
- 引入多道程序技术的前提条件之一是系统具有中断功能。(多道程序技术:要求进程实现并发,而并发的实现需要中断功能的支持)
- 死锁检测一般采用两种方法:资源有向图法和资源矩阵法。
- 没有环路,破坏了循环等待条件,一定不会发生死锁。有环路,仅满足了循环等待的必要条件,不一定导致死锁。
- 当系统出现死锁时,必然有两个或两个以上的进程处于阻塞态。
- 退出临界区的进程负责唤醒就绪进程而非阻塞态进程。
- 并发进程之间的关系没有必然的要求,只有执行时间上的偶然重合,可能相关也可能无关。
- 所谓互斥使用某临界资源,是指在同一时间段内只允许一个进程使用此资源,所以互斥信号量的初值为1。
- 记录型信号量由于引入阻塞机制(block原语实现),消除了不让权等待对的情况,复合让权等待。
- 管程内的条件变量没有值,只是用于排队,对其的访问由编译器实现,各进程互斥地进入管程中的过程。
- 编址空间的大小取决于硬件的访存能力,一般由地址总线宽度决定。
- 交换技术:进程在使用I/O操作时不能换出主存,否则其I/O数据区将被新换入的新进程占用,导致错误。还可以再操作系统中开辟I/O缓冲区,将数据从外设读入或将数据读出到外设的I/O活动在系统缓冲区进行,这是系统缓冲区与外设I/O时,进程交换不受限制。
- 内存保护是内存管理的一部分,是操作系统的任务,但出于安全性和效率考虑必须由硬件实现,所以内存保护需要操作系统和硬件机构合作。
- 内存分页管理是操作系统硬件层面实现的,对用户、编译系统、连接装配程序等上层是不可见的。
- 对重定位存储管理方式,应在整个系统中设置一个重定位寄存器。
- 采用分段存储管理时,分段是指用户编程时,将程序按照逻辑划分为几个逻辑段。
- 程序动态链接与程序的逻辑结构相关,分段存储管理将程序按照逻辑进行划分。
- 可重入 程序主要通过共享来使用同一块存储空间,或通过动态链接的方式,将所需的程序段映射到相关进程中去,其最大的有优点是减少程序段的调入/调出。
- 分区存储管理是满足多道程序设计的最简单的存储管理方案,特别适合嵌入式等微型设备。
- 动态分区又称可变分区,它是系统运行过程中在进程作业装入内存时动态建立的。
- 操作系统在内存管理中为了提高内存利用率,引入覆盖技术和交换技术,实际上是一种时间换空间的技术,为此从节省处理器时间来讲,换入、换出速度越快,付出的时间代价越小,反之就越大,大到一定程序覆盖和交换技术就没有意义了,因此在对外存对换区的管理以提高换入换出速度为主要目标。
- 在非虚拟存储器中,作业必须全部装入内存且在运行过程中也一直驻留内存。在虚拟存储器中,作业不必全部装入内存且在运行过程中也不用一直驻留内存。
- 对主存储器的访问以字节或字位单位。
- 分页存储管理:每个进程拥有一张页表且进程的页表驻留在内存中。
- 在分段存储管理中,段内位移的最大值就是最大段长。
- 段页式存储管理:用段来分配和和管理用户地址空间,用分页方法来管理物理存储空间。
?
?
|