第一次作业复习题1.2 定义处理器寄存器的两种主要类别用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。
对高级语言而言,由优化编译器负责决定把哪些变量应该分配给主存储器。
一些高级语言,如C语言,允许程序言建议编译器把哪些变量保存在寄存器中。
控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。
习题1.6 内存层次的各个元素间的特征是什么?a)CPU定期检查FGI.如果FGI=1,CPU将把数据接收后,被储存在INPR 里面,PR里面的内容传送至AC,并把FGI置为0. 当CPU需要传送数据到打字机时,它会检查FGO.如果FGO=0,CPU处于等待.如果FGO =1,CPU将把AC的内容传送至OUTER并把FGO置为0.当数字符号打印后,打字机将把FGI置为1.b)在a描述的过程非常浪费.速度远高于打字机的CPU必须反复不断的检查FGI和FGO.如果中断被使用,当打字机准备接收或者发送数据时,可以向CPU 发出一个中断请求.IEN计数器可以由CPU设置(在程序员的控制下).复习题2.1操作系统设计的三个目标方便Convenience:操作系统使计算机更易于使用.有效Efficiency:操作系统允许以更有效的方式使用计算机系统资源.扩展的能力Ability to evolve:在构造操作系统时,应该允许在不妨碍服务的前提下有效地开发、测试和引进新的系统功能.复习题2.9解释单体内核和微内核的区别单体内核(single kernel)是一个提供操作系统应该提供的功能的大内核,包括调度、文件系统、网络、设备驱动程序、存储管理等。
内核的所有功能成分都能够访问它的内部数据结构和程序。
典型情况下,这个大内核是作为一个进程实现的,所有元素都共享相同的地址空间。
微内核(microkernel )是一个小的有特权的操作系统内核,只提供包括进程调度、内存管理、和进程间通信等基本功能,要依靠其他进程担当起和操作系统内核联系作用。
习题2.1习题2.3a)简单批处理系统发展为多道批处理系统的原因I/O设备的时间相对于处理器速度太慢,在简单批处理系统中,一次只有一个程序执行处理器大部分时间处于空闲,效率低下。
多道批处理在多个程序之间切换,同时处理多个批作业,可以使批处理变得更加有效。
b)多道批处理系统发展为分时系统的原因分时系统给所有进程一个较短的处理时间,避免多道批处理系统中某些作业占用处理器时间长而导致其他作业等待,有效减小响应时间。
第二次作业Review Questions1.For the processing model of Figure 3.6, briefly define each state.新建new:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。
就绪ready:进程做好了准备,只要有机会就开始执行。
运行running:该进程正在执行。
阻塞blocked :进程在某些事件发生前不能执行,如I/O操作完成。
退出exit:进程从可执行进程组中释放。
2. List three general categories of information in a process control block.1)进程标识信息process identification2)处理器状态信息processor state information3)进程控制信息process control information3. What are the steps performed by an OS to create a new process?1)给进程分配一个唯一的进程标识符Assign a unique process identifier to the new process.2)给进程分配空间Allocate space for the process.3)初始化进程控制块Initialize the process control block.4)设置正确的连接Set the appropriate linkages.5)创建或扩充其他数据结构Create or expand other data structures.4. What is the difference between a mode switch and a process switch?模式切换(mode switch )是指内核态与用户态之间的切换,发生模式切换可以不改变当前正处于运行态的进程的状态。
发生进程切换(processswitch )时,一个正在执行的进程被中断,操作系统指定另一个进程为运行态。
进程切换需要保存更多的状态信息。
Problems1. Consider a computer with N processors in a multiprocessorconfiguration.•a. How many processes can be in each of the Ready, Running, and Blocked states at one time?•b. What is the minimum number of processes that can be in each of the Ready, Running, and Blocked states at one time?• a. 在就绪和阻塞状态的进程数量是没有限制的,只与内存用于存放不同状态进程的空间有关。
而执行中的进程最多有N个,每个处理器最多有一个进程在执行。
•b.如果所有进程都处于运行或者就绪态,没有处于阻塞状态的进程,这是可能的。
反过来,也有可能所有进程都处于阻塞状态,等待某个事件的发生,没有就绪态和执行态的进程2. Figure3.9b contains seven states. In principle, one could draw atransition between any two states, for a total of 42 different transitions.•a. List all of the possible transitions and give an example of what could cause each transition.•b. List all of the impossible transitions and explain why.3. In [PINK89], the following states are defined for processes: Execute (running),Active (ready), Blocked, and Suspend. A process is blocked if it is waiting for permission to use a resource, and it is suspended if it is waiting for an operation to be completed on a resource it has already acquired. In many operating systems, these two states are lumped together as the blocked state, and the suspended state has the definition we have used in this chapter. Compare the relative merits of the two sets of definitions.假设一个进程已经执行了一段时间,它需要一个额外的磁带设备来写出一个临时文件。
在它开始写磁带之前,进程必须得到使用某一设备的许可。
当它做出请求时,磁带设备可能并不可用,这种情况下,该进程就处于阻塞态(blocked)。
假设操作系统在某一时刻将磁带设备分配给了该进程,这时进程就重新变为活跃态。
当进程重新变为执行态时要对新获得的磁带设备进行写操作。
这时进程变为挂起态(suspend),等待该磁带上当前所进行的写操作完成。
这种对等待某一设备的两种不同原因的区别,在操作系统组织其工作时是非常有用的。
然而这并不能表明哪些进程是换入的,哪些进程是换出的。
后一种区别是必需的,而且应该在进程状态中以某种形式表现出来。
第三次作业1.Table 3.5 lists typical elements found in a process control block for an unthreaded OS. Of these, which should belong to a thread control block and which should belong to a process control block for a multithreaded system?• 这对于不同的系统来说通常是不同的,但一般来说,进程是资源的所有者,而每个线程都有它自己的执行状态。
• 关于表3.5中的每一项的一些结论如下:• 进程标识:进程必须被标识,而进程中的每一个线程也必须有自己的ID。
• 处理器状态信息:这些信息通常只与进程有关。
• 进程控制信息:调度和状态信息主要处于线程级;数据结构在两级都可出现;进程间通信和线程间通信都可以得到支持;特权在两级都可以存在;存储管理通常在进程级;资源信息通常也在进程级。
2.List reasons why a mode switch between threads may be cheaper than a mode switch between processes.线程转换(mode switch between threads)包含的状态信息更少。
3.It was pointed out that two advantages of using multiple threads within a process are that (1) less work is involved in creating a new thread within an existing process than in creating a new process, and (2) communication among threads within the same process is simplified. Is it also the case that a mode switch between two threads within the same process involves less work than a mode switch between two threads in different processes?是的,因为线程转换包含更少的状态信息。