操作系统课程作业答案

操作系统课程作业答案
操作系统课程作业答案

第一次作业

复习题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.3

a)简单批处理系统发展为多道批处理系统的原因

I/O设备的时间相对于处理器速度太慢,在简单批处理系统中,一次只有一个程序执行处理器大部分时间处于空闲,效率低下。多道批处理在多个程序之间切换,同时处理多个批作业,可以使批处理变得更加有效。

b)多道批处理系统发展为分时系统的原因

分时系统给所有进程一个较短的处理时间,避免多道批处理系统中某

些作业占用处理器时间长而导致其他作业等待,有效减小响应时间。

第二次作业

Review Questions

1.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 identification

2)处理器状态信息processor state information

3)进程控制信息process control information

3. 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 )时,一个正在执行的进程被中断,操作系统指定另一个进程为运行态。进程切换需要保存更多的状态信息。

Problems

1. Consider a computer with N processors in a multiprocessor

configuration.

?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. Figure

3.9b contains seven states. In principle, one could draw a

transition 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?

是的,因为线程转换包含更少的状态信息。

4.In the discussion of ULTs versus KLTs, it was pointed out that a disadvantage of ULTs is that when a ULT executes a system call, not only is that thread blocked, but also all of the threads within the process are blocked. Why is that so?

因为对于用户级线程来说,一个进程的线程结构对操作系统是不可见的,

而操作系统的调度是以进程为单位的。所以当一个线程被阻塞,和该线程

在同一个进程的所有线程都会被阻塞。

5.Can a multithreaded solution using multiple user-level threads achieve betterperformance on a multiprocessor system than on a single processor system? Explain.

在ULT策略中,多线程的应用不能利用多处理器来提高性能。由于内核每次给每个处理器分配一个进程,在处理器中只有进程的一个线程能执行。

第四次作业

Review Questions

1.What are three contexts in which concurrency arises?

多个应用程序,结构化应用程序,操作系统结构

Multiple applications, structured applications, operating-system structure.

2.What is the basic requirement for the execution of concurrent processes?

加强互斥的能力

The ability to enforce mutual exclusion.

3.List three degrees of awareness between processes and briefly define each.

进程间互相不知道对方Processes unaware of each other:这是一些独立的进程,他们不会一起工作。

进程间间接知道对方Processes indirectly aware of each other:这些进程并不需要知道对方的进程ID号,但他们共享访问某些对象,如一个I/O缓冲区。

进程间直接知道对方Processes directly aware of each other:这些进程可以通过进程ID号互相通信,用于合作完成某些活动。

4.List the requirements for mutual exclusion.

1.必须强制实施互斥:在具有关于相同资源或共享对象的临界区的所有进程中,一次只允许一个进程进入临界区。

2.一个在临界区停止的进程必须不干涉其他进程。

3.绝不允许出现一个需要访问临界区的进程被无限延迟的情况,即不会饿死或饥饿。

4.当没有进程在临界区中时,任何需要进入临界区的进程必须能够立即进入。

5.对相关进程的速度和处理器的数目没有任何要求和限制。

6.一个进程驻留在临界区中的时间是有限的。

5.What operations can be performed on a semaphore?

1)一个信号量可以初始化成非负数。

2)wait操作使信号量减1,如果值为负数,那么进程执行wait就会受阻。

3)signal操作使信号量增加1,如果小于或等于0,则被wait操作阻塞的进程被解除阻塞。

Problems

1. What are three contexts in which concurrency arises? Consider a concurrent program with two processes, p and q, defined as follows. A, B,C, D, and E are arbitrary atomic (indivisible) statements. Assume that the main program (not shown) does a parbegin of the two processes.

void p() void q()

{ {

A; D;

B; E;

C; }

}

?Show all the possible interleavings of the execution of the preceding two processes ABCDE;ABDCE;ABDEC;ADBCE;ADBEC;ADEBC;DEABC;DAEBC;DABEC;DA BCE;

2. Is busy waiting always less efficient (in terms of using processor time) than a blocking wait? Explain.

就一般情况来说是对的,因为忙等待消耗无用的指令周期.然而,有一种特殊情况,当进程执行到程序的某一点处,在此处要等待直到条件满足,而正好条件已满足,此时忙等待会立即有结果,然而阻塞等待会消耗操作系统资源在换出与换入进程上.

3. Now consider a version of the bakery algorithm without the variable choosing. Then we have int number[n];

while (true) {

number[i] = 1 + getmax(number[], n);

for (int j = 0; j < n; j++){

while ((number[j] != 0) && (number[j],j) < (number[i],i)) { };

}

/* critical section */;

number [i] = 0;

/* remainder */;

}

Does this version violate mutual exclusion? Explain why or why not.

Suppose we have two processes just beginning; call them p0 and p1.Both reach line 3 at the same time. Now, we'll assume both read number[0] and number[1] before either addition takes place. Let p1 complete the line, assigning 1 to number[1], but p0 block before the assignment. Then p1 gets through the while loop at line 5 and enters the critical section. While in the critical section, it blocks;p0 unblocks, and assigns 1 to number[0] at line 3. It proc eeds to the while loop at line 5. When it goes through that loop for j = 1, the first condition on line 5 is true.Further, the second condition on line 5 is false, so p0 enters the critical section.Now p0 and p1 are both in the critical section, violating mutual exclusion. The-28-reason for choosing is to prevent the while loop in line 5 from being entered when process j is setting its number[j]. Note that if the loop is entered and then process j reaches line 3, one of two situations arises. Either number[j] has the value 0 when the first test is executed, in which case process i moves on to the next process, or number[j] has a non-zero value, in which case at some point number[j] will be greater than number[i]

(since process i finished executing statement 3 before process j began). Either way, process i will enter the cr)

4. Consider the first instance of the statement bolt = 0 in Figure

5.2b.

a. Achieve the same result using the exchange instruction.

b. Which method is preferable?

a. exchange(keyi, bolt)

b. The statement bolt = 0 is preferable. An atomic statement such as exchange

will use more resources.

第五次作业

复习题6.1.给出可重用资源和可消耗资源的例子。

可重用资源的例子是:处理器、I/O 通道、主存和辅存、设备和数据结构,如文件、数据库和信号量。

可消耗资源的例子是:中断、信号、信息及在I/O 缓存中的信息。

复习题6.2.产生死锁的三个必要条件是什么?

1)互斥 2)占有且等待 3)不可抢占;

复习题6.3.产生死锁的四个条件是什么?

1)互斥 2)占有且等待 3)不可抢占 4)循环等待

习题6.6

1. W=(2 1 0 0)

2. Mark P3; W=(2 1 0 0)+(0 1 2 0)=(2 2 2 0)

3. Mark P2; W=(2 2 2 0)+(2 0 0 1)=(4 2 2 1)

4. Mark P1; no deadlock detected 没有死锁

习题6.11. 假设在系统中有四个进程和四种类型的资源,系统使用银行家算法来避免死锁。最大资源需求矩阵是

Claim=?????

???????1116725131134

1244 其中claimij (1<=i<=4且1<=j<=4)表示进程i 对于资源j 的最大需求。系统中每一种类型的资源总量由向量[16,5,2,8]给出。当前的资源分配情况由下面的矩阵给出:

Allocation=?????

???????0113201101211004 其中Allocationij 表示当前分配给进程i 的资源j 的数量。

a) 说明这个状态是安全的。

b) 说明进程1申请1个单位的资源2是否允许。

c )说明进程3申请6个单位的资源1是否允许。(这个问题和问题b 是独立的)

d)说明进程2申请2个单位的资源4是否允许。(这个问题和问题b 、c 是独立的) 解:a )可用资源=[7,1,0,5]

需求矩阵(C-A )=?????

???????10035241210130240 (1)可先执行进程2,进程2释放资源后,可用资源=[8,3,1,5]

(2)执行进程4,进程4释放资源后,可用资源=[11,4,2,5]

(3)执行进程1,进程1释放资源后,可用资源=[15,4,2,6]

(4)执行进程3,进程3释放资源。

所以存在一个安全序列。该状态是安全的。

b )进程1申请一个单位的资源2后,可用资源变为[7,0,0,5]

Allocation=?????

???????0113

201101211014 需求矩阵(C-A )=?????

???????10035241210130230 1) 可执行进程4,释放资源后可用资源变为[10,1,1,5]

2) 执行进程2,释放资源后可以资源变为[11,3,2,5]

3) 执行进程1,释放资源后可用资源变为[15,4,2,6]

4) 执行进程3,可完成。

所以进程1申请1个单位的资源2是允许的。

c )进程3申请6个单位的资源1后,可用资源为[1,1,0,5]

Allocation=?????

???????0113201701211004

需求矩阵(C-A )=?????

???????1003524610130230 可用资源不能满足任何进程,所以该分配是不允许的。

d )进程2申请两个单位资源4后,但进程2对资源4的最大需求量为1,申请数大于最大需求数,因此不能分配。

习题6.14.

a )3个进程共享4个资源单元,一次只能保留或释放一个单元。每个进程最大需要2个单元。说明不会死锁。

b )N个进程共享M个资源单元,一次只能保留或释放一个单元。每个进程最大需要单元数不超过M,并且所有最大需求的总和小于M+N。说明不会发生死锁。 解:a )说明由于每个进程最多需要2个资源,最坏情况下,每个进程需要获得一个,系统还剩1个,这一个资源,无论分给谁都能完成。完成进程释放资源后,使剩余进程也完成,故系统不会死锁。

b )假定每个进程最多申请X 个资源,最坏情况下,每个进程都得到X-1个资源都在申请最后一个资源,这时系统剩余资源数量为M-N(X -1),只要系统还有一个剩余资源,就可以使其中的一个进程获得所需要的全部资源,该进程运行结束以后释放资源,就可以使其他进程得到全部资源的 满足,因此,当M-N(X-1)》1时系统不会发生死锁,解这个不等式X 《(M+N-1),系统不会发生死锁,因此,当所有进程的需求总和小于M+N 时,系统是不会发生死锁的。

习题6.18 假设有两种类型的哲学家。一类总是先拿起左边的叉子(左撇子),

另一类总是先拿起右边的叉子(右撇子)。左撇子的行为和图6.12中定义的一致。右撇子的行为如下:

begin

repeat

think;

wait(fork[(i+1)mod5]);

wait(fork[i]);

eat;

signal(fork[i]);

signal(fork[(i+1)mod5]);

forever;

end;

证明:

a)如果至少有一个左撇子或右撇子,则他们的任何就座安排都可以避免死锁。b)如果至少有一个左撇子或右撇子,则他们的任何就座安排都可以防止饥饿。解:

a)假设存在死锁情况,设有D个哲学家,他们每人都有一支叉子而且另一支叉子被邻居占有。不失一般性,设Pj是一个左撇子。 Pj抓牢他的左边叉子而且没有他的右边叉子,他的右边邻居Pk没有完成就餐因此也是一个左撇子。因此依次推理下去所有这D个哲学家都是左撇子。这与既有左撇子又有右撇子的条件矛盾,假设不成立,不存在死锁。

b)假设左撇子Pj饥饿,也就是说,有一部分人在就餐而Pj从不吃。假如Pj 没有叉子。这样Pj的左边邻居Pi一定持续地占有叉子而始终不吃完。因此Pi 是右撇子,抓住他的右边叉子,但是从不得到他的左边叉子来完成就餐,也就是说Pi也饥饿。现在Pi左边邻居也一定是持续占有右边叉子的右撇子。向左进行这样的推理,得出所有哲学家都是饥饿的右撇子,这同Pj是个左撇子矛盾。因此Pj一直拥有左边子而且在等待他的右边叉子,Pj的右边邻居Pk一直举着他的左边叉子而且从不完成一餐,也就是,Pk是也饥饿的左撇子。如果Pk不是一直拿着他的左边叉子,Pj就可以就餐;因此Pk拿着他的左边叉子。向右推理可得所有

哲学家都是饥饿的左撇子。这与条件矛盾,因此假设不成立,没有人饥饿。

第六次作业

复习题

7.1 What requirements is memory management intended to satisfy?

重定位、保护、共享、逻辑组织、物理组织

7.2 Why is the capability to relocate processes desirable?(课本210)

通常情况下,程序员并不能事先知道在某个程序执行期间会有哪些程序驻留在内存中。此外还希望通过提供一个巨大的就绪进程池,能够把活动进程换入或换出内存,以便使处理器的利用率最大化。在这两种情况下,该过程中的特定位置主内存是不可预测的。

7.6 What is the difference between internal and external fragmentation?

内部碎片:被装入的数据块小于分区大小,从而导致分区内部有空间浪费。它是指已经被分配出去,却不能被利用的内存空间。

外部碎片:与动态分区相关联的现象,指在所有分区外的存储空间变成越来越多的碎片。它指的是还没有被分配出去,但由于空间太小了无法分配给申请内存空间的新进程的内存空闲区域。

7.7 What are the distinctions among logical, relative, and physical addresses?

逻辑地址是指与当前数据在内存中的物理分配地址无关的访问地址,在执行对内存的访问之前必须把它转换成物理地址。

相对地址是逻辑地址的一个特例,是相对于某些已知点(通常是程序的开始处)的存储单元。

物理地址(绝对地址)是数据在内存中的实际位置。

习题

7.2 Consider a fixed partitioning scheme with equal-size partitions of 216 bytes and a total main memory size of 224 bytes. A process table is maintained that includes a pointer to a partition for each resident process. How many bits are required for the pointer?

Answer:The number of partitions equals the number of bytes of main memory divided by the number of bytes in each partition: 224/216 = 28. Eight bits are needed to identify one of the 28 partitions.

7.5 Another placement algorithm for dynamic partitioning is referred to as worst-fit. In this case, the largest free block of memory is used for bringing in a process. Discuss the pros and cons of this method compared to first-, next-, and best-fit. What

is the average length of the search for worst-fit?

Answer:A criticism of the best fit algorithm is that the space remaining after allocating a block of the required size is so small that in general it is of no real use. The worst fit algorithm maximizes the chance that the free space left after a placement will be large enough to satisfy another request, thus minimizing the frequency of compaction. The disadvantage of this approach is that the largest blocks are allocated first; therefore a request for a large area is more likely to fail.

7.13: a=pz+w;其中p=???

???z a ,w=a%z; 7.14

a) 段0开始于位置660,随着偏移量,我们有一个物理地址: 段0开始于位置660,660 + 198 = 858

b) 第2个段起始地址为222,长度为198

所以,物理地址为222+156=378

c) 段1为422字节的长度,所以这个地址触发段错误

d) 996 + 444 = 1440

e) 660 + 222 = 882

操作系统课程设计

课程设计报告 2015~2016学年第一学期 操作系统综合实践课程设计 实习类别课程设计 学生姓名李旋 专业软件工程 学号130521105 指导教师崔广才、祝勇 学院计算机科学技术学院 二〇一六年一月

- 1 -

- 2 -

一、概述 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: 本次课程设计是要实现一个简单的模拟Linux文件系统。我们在内存中开辟一个虚拟磁盘空间(20MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 二、设计的基本概念和原理 2.1 设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 - 3 -

read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树 format 格式化文件系统 Exit 退出文件系统 2.2设计要求 1) 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2) 多级目录:可有多级子目录; 3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块) 5) 文件的创建:create (用命令行来实现)6) 文件的打开:open 7) 文件的读:read8) 文件的写:write 9) 文件关闭:close10) 删除文件:delete 11) 创建目录(建立子目录):mkdir12) 改变当前目录:cd 13) 列出文件目录:dir14) 退出:logout 新增加的功能: 15) 删除目录树:rd 16) 格式化文件系统:format 2.3算法的总体思想 - 4 -

操作系统-Linux课程实验报告

实验、 Linux Ubuntu的安装、创建新的虚拟机VMWare 实验 Shell编程 1.实验目的与内容 通过本实验,了解Linux系统的shell机制,掌握简单的shell编程技巧。 编制简单的Shell程序,该程序在用户登录时自动执行,显示某些提示信息,如“Welcome to Linux”, 并在命令提示符中包含当前时间、当前目录和当前用户名等基本信息。 2.程序源代码清单 #include<> #include int main(){ printf("Hello Linux\n"); int pid; int state; int pfd[2]; pipe(pfd); if (fork()==0){ printf("In the grep progress\n"); dup2(pfd[0],0); close(pfd[0]); close(pfd[1]); execlp("grep","grep","sh",0); perror("exelp grep error"); } esle if(fork()==0){ printf("In the ps progress\n"); dup2(pfd[1],1); close(pfd[0]); close(pfd[1]); execlp("ps","ps","-ef",0); perror("execlp ps -ef"); }

close(pfd[1]); close(pfd[0]); wait(&state); wait(&state); } 实验内核模块 实验步骤: (1).编写内核模块 文件中主要包含init_clock(),exit_clock(),read_clock()三个函数。其中init_clock(),exit_clock()负责将模块从系统中加载或卸载,以及增加或删除模块在/proc中的入口。read_clock()负责产生/proc/clock被读时的动作。 (2).编译内核模块Makefile文件 # Makefile under ifneq ($(KERNELRELEASE),) #kbuild syntax. dependency relationshsip of files and target modules are listed here. obj-m := else PWD := $(shell pwd) KVER ?= $(shell uname -r) KDIR := /lib/modules/$(KVER)/build all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: rm -rf .*.cmd *.o *. *.ko .tmp_versions *.symvers *.order endif 编译完成之后生成模块文件。 (3).内核模块源代码 #include #include #include #include #include #include #define MODULE #define MODULE_VERSION "" #define MODULE_NAME "clock" struct proc_dir_entry* my_clock; int read_clock(char* page, char** start, off_t off, int count, int* eof, void* data) { int len; struct timeval xtime;

北大操作系统高级课程-陈向群作业-线程调度实习报告

线程调度实习报告

目录 内容一:总体概述 (3) 内容二:任务完成情况 (3) 任务完成列表(Y/N) (3) 具体Exercise的完成情况 (3) 内容三:遇到的困难以及解决方法 (8) 内容四:收获及感想 (9) 内容五:对课程的意见和建议 (9) 内容六:参考文献 (9)

内容一:总体概述 本次lab主要是对线程调度的学习和理解。当计算机系统是多道程序设计系统时,通常就会有多个进程或或线程同时竞争CPU。只要有两个或更多的进程处于就绪态,这种情况就会发生,那么就必须选择下一个要运行的进程。在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法称为调度算法。 进程调度策略的选择对整个系统性能有至关重要的影响,一个好的调度算法应该考虑很多方面:公平、有效、响应时间、周转时间、系统吞吐量等等。但这些因素之间又是相互矛盾的,最终的取舍根据系统要达到的目标而定,同时我们也可以看出多进程的管理是~种非常复杂的并发程序设计.每个进程的状态不仅由其自身决定,而且还要受诸多外在因素的影响.而在此基础上的进程调度,为了保证操作系统的稳定性、提高效率和增加灵活性,还必须采用很多方法,这些都是值得我们去研究和探讨的。 本次实验针对Nachos系统的代码的阅读和修改,了解Nachos系统中线程调度在代码中如何实现,以及在其上扩展线程调度算法,实现基于优先级的抢占式调度算法。 内容二:任务完成情况 任务完成列表(Y/N) Exercise1 Exercise2 Exercise3 完成情况Y Y Y 具体Exercise的完成情况 Exercise1调研 了解Linux或Windows中采用的进程/线程调度算法。 解答:Linux 的调度算法演化伴随着其内核版本的更迭,具有代表性的版本以此为:2.4,2.6,以及最近几年频繁更替的版本:3.5,3.6,3.7,3.8,其中3.8 是最新的稳定版本。下面就其调度机制的演化进行论述。 在 2.4 版本的内核之前,当很多任务都处于活动状态时,调度器有很明显的限制。这是由于调度器是使用一个复杂度为O(n) 的算法实现的。在这种调度器中,调度任务所花费的时间是一个系统中任务个数的函数。换而言之,活动的任务越多,调度任务所花费的时间越长。在任务负载非常重时,处理器会因调度消耗掉大量的时间,用于任务本身的时间就非常少了。因此,这个算法缺乏可伸缩性。在对称多处理系统(SMP)中,2.4 版本之前的调度器对所有的处理器都使用一个运行队列。

计算机操作系统实验课实验报告

实验报告 实验课程: 计算机操作系统学生姓名:XXX 学号:XXXX 专业班级:软件 2014年12月25日

目录 实验一熟悉Windows XP中的进程和线程.. 3实验二进程调度 (7) 实验三死锁避免—银行家算法的实现 (18) 实验四存储管理 (24)

实验一熟悉Windows XP中的进程和线程 一、实验名称 熟悉Windows XP中的进程和线程 二、实验目的 1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 三、实验结果分析 1、启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。

2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并 完成下表: 表一:统计进程的各项主要信息 3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。再

从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程, 原因是该系统是系统进程。 4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所 有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进 程“explorer.exe”的各项信息,并填写下表: 进程:explorer.exe 中的各个线程

计算机操作系统3套期末考试题及答案

计算机专业计算机操作系统试题 2003年7月 一、选择题(选择一个正确的答案的代号填入括号中,共38分) 1.操作系统核心部分的主要特点是( )。 A.一个程序模块B.主机不断电时常驻内存 C.有头有尾的程序D.串行顺序执行 2.操作系统中用得最多的数据结构是( )。 A.堆栈B.队列 C.表格D.树 3. 索引式(随机)文件组织的一个主要优点是( )o A.不需要链接指针B.能实现物理块的动态分配 C.回收实现比较简单D.用户存取方便 4.文件目录的主要作用是( )。 A.按名存取B.提高速度 C.节省空间D.提高外存利用率 5.在操作系统管理中,面向用户的管理组织机构称为( )。 A.用户结构B.实际结构 C.物理结构D.逻辑结构 6.单机操作系统的共享资源主要是指( )。 A.内存、CPU和基本软件B.键盘、鼠标、显示器 C.打印机、扫描仪D.软盘、硬盘、光盘 7.为方便用户,操作系统负责管理和控制计算机系统的( )。 A.软件资源B.硬件和软件资源 C.用户有用资源D.硬件资源 8.设备I/O方式有如下三种:( )、( )和( )。 A.假脱机B.询问 C.联机D.中断 E.通道F.脱机 9.操作系统五大功能中作业管理包含( )和( );文件管理又称( );存储管理主要讲解( );设备管理是最原始的( );进程管理实质上是( )。 A.CPU的执行调度管理B.用户任务管理 C. 信息管理D.监控程序管理 E.人机交互界面管理F.内存管理 10.计算机在接受用户请求后处理数据以及在数据处理结束时,将结果送到终端显示器。例如,导弹控制系统应选择安装( );计算机订票系统应选择安装( );计算机语言学习系统应选择安装( )。A.批处理操作系统B.分时操作系统 C.实时操作系统D.网络操作系统 E.分布式操作系统 二、是非题(正确的划√,错的划×,其它符号按错论。共20分) ( )1.系统调用是操作系统和用户进程的接口,库函数也是操作系统和用户的接口。 ( )2.UNIX的i节点(内码)是文件系统的主要数据结构(表格)部分。 ( )3.虚地址即程序执行时所要访问的内存地址。

计算机管理实习报告

计算机管理实习报告 新疆农业大学实习报告实习课程名称:毕业实习学院:计算机与信息工程学院专业、班级:信息管理与信息系统024指导教师:张胜光报告人:柳新年学号:024631432时间:XX年4月22日实习主要内容:因为时间的原因,和工商联没有计算机中心,因此我没能介入到网络管理的每一个方面,重点完成了针对计算机维护、网络安全的实习。现将我在工商联实习的心得总结如下:一、计算机维护计算机维护分为硬件维护和软件维护两个方面。工商联的计算机现状大概是总共有用于办公的计算机20余台,大部分是方正奔腾4的品牌机,还有一些联想的品牌机,以及少量打印机。

1、对硬件的维护主要集中在上一代未更新的计算机,因为使用年限比较久,硬件老化及磨损相对比较严重。在使用现在部分大型软件的时候经常出现死机,蓝屏,自动重启等现象。一般常见的引起硬件故障的主要原因有很多种,例如:各个配件间的兼容性不好;有些硬件的质量不过关等。但一般常见的硬件故障主要由以下几个方面引起。首先,电源电压不稳定或经常断电引起的故障。微机所使用的电源的电压不稳定,那么硬盘在读写文件时就会出现丢失或被损坏的现象。如果经常会发生不正常的断电现象导致微机重启,或是经常在计算机运行程序时进行冷启动,将会使系统受到破坏。为使微机更安全地工作,最好使用电源稳压器或不间断电源。其次,部件之间接触不良引起的故障。接触不良主要反映在各种卡类与主板的接触不良或电源线数据线音频线的连接不良。其中,各种接口卡内存条与主板接触不良最为常见。例如:显卡与主板接

触不良可能会使显示器不显示,内存条与主板接触不良可能使微机不工作等,通常只要更换相应的插槽或用橡皮轻轻擦一擦接口卡或内存条的金手指,即可排除故障。2、软件维护方面,在新近配置的一批方正计算机中因为随商家发货过来的时候,已经装好了操作系统还附带安装了瑞星杀毒软件,但是因为他们安装的操作系统WindowsXP没有打上SP2补丁,而且安装的瑞星杀毒软件也是XX年版的,再加上所有的办公计算机都是挂在网络上的,这样就使得计算机对病毒和入侵的抵御能力很差,但同时又面临开放网络的大量病毒和入侵,造成该批计算机大面积中毒。给我们带来了巨大的工作量,在这次病毒感染中,计算机感染的集中表现为:震荡波和一种叫的病毒。我们开始更新瑞星杀毒软件,能找到内存中的病毒并清除,但是这并不能从根本上解决问题。因为病毒是利用操作系统本身存在的漏洞进行攻击的,如果不把漏洞堵上,还是会被感

操作系统课程设计报告

上海电力学院 计算机操作系统原理 课程设计报告 题目名称:编写程序模拟虚拟存储器管理 姓名:杜志豪.学号: 班级: 2012053班 . 同组姓名:孙嘉轶 课程设计时间:—— 评语: 成绩: 目录 一、设计内容及要求 (4) 1. 1 设计题目 (4) 1.2 使用算法分析: (4)

1. FIFO算法(先进先出淘汰算法) (4) 1. LRU算法(最久未使用淘汰算法) (5) 1. OPT算法(最佳淘汰算法) (5) 分工情况 (5) 二、详细设计 (6) 原理概述 (6) 主要数据结构(主要代码) (6) 算法流程图 (9) 主流程图 (9) Optimal算法流程图 (10) FIFO算法流程图 (10) LRU算法流程图 (11) .1源程序文件名 (11) . 2执行文件名 (11) 三、实验结果与分析 (11) Optimal页面置换算法结果与分析 (11) FIFO页面置换算法结果与分析 (16) LRU页面置换算法结果与分析 (20) 四、设计创新点 (24) 五、设计与总结 (27)

六、代码附录 (27) 课程设计题目 一、设计内容及要求 编写程序模拟虚拟存储器管理。假设以M页的进程分配了N

块内存(N

操作系统实习报告样本

操作系统实习报告样本 1 操作系统实习报告内容(1) 基本信息:完成人姓名、学号、报告日期 (2) 实习内容(3) 实习目的(4) 实习题目(5) 设计思路和流程图(6) 主要数据结构及其说明(7) 源程序并附上注释(8) 程序运行时的初值和运行结果(9) 实习体会:实习中遇到的问题及解决过程、实习中产生的错误及原因分析、实习的体会及收获、对搞好今后实习提出建设性建议等。实习报告可以书面或电子文档形式提交。 2操作系统实习报告样本样本1一、实习内容模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断。二、实习目的在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实习理解在分页式存储管理中怎样实现虚拟存储器。三、实习题目本实习有三个小题。第一题:模拟分页式存储管理中硬件的地址转换和产生缺页中断。[设计思路、数据结构、流程图]:(1) 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说明哪些页已在主存,哪些页尚未装入主存,页表的格式为:页号标志主存块号在磁盘上的位置其中,标志——用来表示对应页是否已经装入主存,标志位=1,则表示该页已经在主存,标志位=0,则表示该页尚未装入主存。主存块号——用来表示已经装入主存的页所占的块号。在磁盘上的位置——用来指出作业副本的每一页被存放在磁盘上的位置。(2) 作业执行时,指令中的逻辑地址指出参加运算的操作数存放的地址,该地址被解释为页号和单元号,硬件的地址转换机构按页号查页表,若该页对应标志为“1”,则表示该页已在主存,这时根据关系式:绝对地址=块号′块长+单元号计算出欲访问的主存单元地址。如果块长为2的幂次,则可把块号作为高地址部分,把单元号作为低地址部分,两者拼接而成绝对地址。按计算出的绝对地址可以取到操作数,完成一条指令的执行。若访问的页对应标志为“0”,则表示该页不在主存,这时硬件发“缺页中断”信号,由操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后再重新执行这条指令。(3) 设计一个“地址转换”程序来模拟硬件的地址转换

计算机操作系统期末考试题及答案(模拟卷一)

2012计算机操作系统期末考试试题及答案 操作系统试卷A 一、简答题(每题5分,共30分) 1.什么是虚拟设备? 2.What’s the differrence between a process and a program? 3.What’s Hyper-Treading technology? 4.死锁的必要条件是什么? 5.为什么将文件控制块分成主部和次部两部分? 6.若系统有同类资源m个,被n个进程共享,问:当m>n和m<=n时每个进程最多可以请求多少个这类资源,使系统一定不会发生死锁?为什么? 二、填空题(每空1分,共10分) 1.操作系统的两个重要特性是:(1) 和(2) 。 2.只能在管态下执行的指令称为(3) 。处理机状态由目态转换为管态的唯一途径是(4) ,管态到目态的转换可以通过修改(5) 来实现。 3.进程在其生存期内可以处于如下三种基本状态之一:运行态、就绪态和等待态。当一个就绪进程(6) 时,其状态由就绪变为运行,当一个运行进程被抢占处理机时,其状态由运行变为(7) ,当一个运行进程因某事件受阻时,其状态由运行变为(8) ,当进程所等待的事件已经发生时,该进程状态由(9) 变为就绪。 4.线程是进程内的一个相对独立的(10)。 三、计算题(每题10分,共40分) 1.设某计算机系统采用虚拟页式存储管理方法,进程的虚拟地址空间为64KB,页面尺寸为4KB。假设当前进程的页表如右图所示(页表以二进制形式表示),请将虚拟地址8196和2050转换为物理地址。 2.设某计算机系统采用虚拟页式存储管理方法,内存中为该进程分配4个物理页架, 开始时内存页架为空,假设进程在一段时间内的页面访问序列如下:6,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1,请画图表示采用以下页面淘汰算法时的缺页中断次数:(1)最佳页面淘汰算法(OPT);(2)先进先出页面淘汰算法(FIFO);(3)使用过最久的先淘汰(LRU)。 3.在UNIX系统中,设磁盘物理块大小为1KB,每个索引块可以保存256个索引项,请画出UNIX文件的物理结构。假设某文件大小为1028KB,请计算访问以下逻辑块时需要多少次I/O传输:(1)8;(2)300;(3)16。 4.设有周期性实时任务集如下表所示,用最早截止期优先算法(EDF算法)和速率单调算法(RMS算法)是否可以调度?画出相应的Gantt图。 四、算法设计(每题10分,共20分) 1.设有一个可以装A、B两种物品的仓库,其容量无限大,但要求仓库中A、

视频监控系统实习报告范本

. 安全防技术 视频监控系统工程技术实训报告 班级: : 课程名称:安全防技术 实训项目:视频监控系统工程综合实训 指导老师: 提交日期:2016年8月日

概要 视频监控是指以维护社会公共安全为目的,而采取的防入侵、防盗、防破坏和安全检查措施。视频监控设计是完成一个视频监控系统工程项目的第一步,也是非常关键的一布。 本次校园视频监控从校园建筑安全防系统工程的设计实际出发,依据用户任务书和国家的有关规与标准,建立一个以视频监控安全防系统。以人防与物防、技防相结合,达到防入侵、防盗、防破坏等系统进行联合设计,组成一个综合的、多功能的安全防系统是社会建设发展的需要也是校园安稳和平的需要。 校园视频监控系统的工程设计根据使用要求、现场情况、工程规模、系统造价以及校园的特殊需要等来综合考虑,达到最佳效果。 系统组成:本次实训的系统主要由前端设备、线路设备和终端设备组成。由于现在楼宇自动化的程度越来越高,作为其中一个重要组成部分的视频监控系统也得到了相当的发展,所以视频监控是发展前景很大的项目。

目录 前言....................................... .. (4) 第一章系统介绍 ............................. . (5) 第二章设计思路.............................. ... . (6) 第三章主要设备介绍 (8) 第四章主要设备(摄像机、硬盘录像机工作原理) (10) 4.1前端系统设备.................................. .. (10) 4.2视频监控前端现场设备安装要求................... . (15) 4.3终端视频图像监控子系统................... . (15) 第五章视频监控的简介................... . (19) 第六章实验步骤 (27) 第七章海康网络设备搜索软件的使用步骤 (28) 第八章海康网络设备客户端4200软件使用步骤 (33) 结论 (43) 致 (44) 参考文献 (45)

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

操作系统期末试题及答案

《操作系统》期末试卷 姓名 一、选择题(15*2分=30分) 1、在操作系统中,JCB是指(A ) A.作业控制块B.进程控制块C.文件控制块D.程序控制块 2、并发进程之间(D) A.彼此无关 B.必须同步 C.必须互斥 D.可能需要同步或互斥 3 A 4 ?A 5、(D A 6 A 7 A. 8 A. C. 9、设有。 A.2 10 A. 11 A 12、() A C 13 A 14、(B A.固定分区 B.分段 C.分页 D.可变分区 15、在进程管理中,当()时,进程从阻塞状态变为就绪状态。 A.进程被进程调度程序选中B.等待某一事件C.等待的事件发生D.时间片用完 二、填空题(20*1分=20分) 1、在单用户环境下,用户独占全机,此时程序的执行具有_封闭性______和_可再现性_。 2、对于信号量,在执行一次P操作时信号量-1_;当其值为__<0__时,进程应阻塞。在执行V操作时信号量的值应当_信号量+1_; 当其值为__<=0__时,应唤醒阻塞队列中的进程。 3、进程的三种基本状态分别是、进程的三种基本状态分别是__运行______,_就绪_和__阻塞(等待)__。 4、多道程序环境下的各道程序,宏观上它们是_并行__运行,微观上是_串行_运行。 5、在单CPU系统中有(n>1)个进程,在任一时刻处于就绪的进程最多是__n-1__个,最少是___0____个。

6、分区管理方案不能实现虚存的原因是_作业地址空间不能大于存储空间_。 7、段页式存储管理中,是将作业分_段__,__段_____内分___页____。分配以__页_____为单位。在不考虑使用联想存储器快表 的情况下,每条访问内存的指令需要____3___访问内存。其中第_2___次是查作业的页表。 三、简答题(4*5分=20分) (2) ????????????进程A???????????????????????????????进程B ???????????...??????????????????????????????????... ????????P(mutex);????????????????????????????P(mutex);

Linux操作系统实习报告

桂林理工大学·信息科学与工程学院Linux操作系统报告 学院:信息科学与工程学院 班级:计算机2010-1 指导:王爱学 学号:3100717102 姓名:周杰 日期:2013年12月25日

【摘要】 Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux 内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于天才程序员林纳斯·托瓦兹。 Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。 【操作】 1.ls -l -a -F的区别 从图中可以看出,-a,-l,-F的特点: 单纯的ls命令不能显示隐藏文件,需要-a才能显示文件名以.开头的隐藏文件和文件夹 ls -l则可以以长格式显示文件信息 ls -F则是:在列出的文件目录名称后加一符号例如可执行文件加"*", 目录则加"/"

2. cd 命令 cd 这个命令是用来进出目录的它的使用方法和在dos下没什么两样,但和dos不同的是Linux 的目录对大小写是敏感的,如果大小写拼写有误,你的cd操作是成功不了的,另外cd 如果直接输入cd 后面不加任何东西会回到使用者自己的Home,目录假设如果是root,那就是回到/root,这个功能同cd ~是一样的 3. mkdir rmdir mkdir 命令用来建立新的目录如输入如下命令 mkdir zj 将在当前目录下新建一个zj 目录 rmdir 用来删除已建立的目录如输入如下命令 rmdir zj 将删除已存在的空目录zj 4. cp

操作系统(一个小型操作系统的设计与实现)课程设计

南通大学计算机科学与技术学院操作系统课程设计报告 专业: 学生姓名: 学号: 时间:

操作系统模拟算法课程设计报告 设计要求 将本学期三次的实验集成实现: A.处理机管理; B.存储器管理; C.虚拟存储器的缺页调度。 设计流程图 主流程图 开始的图形界面 处理机管理存储器管理缺页调度 先来先服务时 间 片 轮 转 首 次 适 应 法 最 佳 适 应 法 先 进 先 出 L R U 算 法

A.处理机调度 1)先来先服务FCFS N Y 先来先服务算法流程 开始 初始化进程控制块,让进程控制块按进程到达先后顺序让进程排队 调度数组中首个进程,并让数组中的下一位移到首位 计算并打印进程的完成时刻、周转时间、带权周转时间 其中:周转时间 = 完成时间 - 到达时间 带权周转时间=周转时间/服务时间 更改计时器的当前时间,即下一刻进程的开始时间 当前时间=前一进程的完成时间+其服务时间 数组为空 结束

2)时间片轮转法 开始 输入进程总数 指针所指的进程是 否结束 输入各进程信息 输出为就绪状态的进程的信息 更改正在运行的进程的已运行时间 跳过已结束的程序 结束 N 指向下一个进程 Y 如果存在下一个进程的话 Y N 输出此时为就绪状态的进程的信息 时间片轮转算法流程图

B.存储器管理(可变式分区管理) 1)首次适应法 分配流程图 申请xkb内存 由链头找到第一个空闲区 分区大小≥xkb? 大于 分区大小=分区大小-xkb,修改下一个空闲区的后向指针内容为(后向指针)+xkb;修改上一个空闲区的前向指针为(前向指针)+xkb 将该空闲区从链中摘除:修改下一个空闲区的后向地址=该空闲区后向地址,修改上一个空闲区的前向指针为该空闲区的前向指针 等于 小于延链查找下 一个空闲区 到链尾 了? 作业等待 返回是 否 登记已分配表 返回分配给进程的内存首地址 开始

操作系统实验报告

操作系统教程 实 验 指 导 书 姓名: 学号: 班级:软124班 指导老师:郭玉华 2014年12月10日

实验一WINDOWS进程初识 1、实验目的 (1)学会使用VC编写基本的Win32 Consol Application(控制台应用程序)。 (2)掌握WINDOWS API的使用方法。 (3)编写测试程序,理解用户态运行和核心态运行。 2、实验内容和步骤 (1)编写基本的Win32 Consol Application 步骤1:登录进入Windows,启动VC++ 6.0。 步骤2:在“FILE”菜单中单击“NEW”子菜单,在“projects”选项卡中选择“Win32 Consol Application”,然后在“Project name”处输入工程名,在“Location”处输入工程目录。创建一个新的控制台应用程序工程。 步骤3:在“FILE”菜单中单击“NEW”子菜单,在“Files”选项卡中选择“C++ Source File”, 然后在“File”处输入C/C++源程序的文件名。 步骤4:将清单1-1所示的程序清单复制到新创建的C/C++源程序中。编译成可执行文件。 步骤5:在“开始”菜单中单击“程序”-“附件”-“命令提示符”命令,进入Windows“命令提示符”窗口,然后进入工程目录中的debug子目录,执行编译好的可执行程序: E:\课程\os课\os实验\程序\os11\debug>hello.exe 运行结果 (如果运行不成功,则可能的原因是什么?) : 有可能是因为DOS下路径的问题 (2)计算进程在核心态运行和用户态运行的时间 步骤1:按照(1)中的步骤创建一个新的“Win32 Consol Application”工程,然后将清单1-2中的程序拷贝过来,编译成可执行文件。 步骤2:在创建一个新的“Win32 Consol Application”工程,程序的参考程序如清单1-3所示,编译成可执行文件并执行。 步骤3:在“命令提示符”窗口中运行步骤1中生成的可执行文件,测试步骤2中可执行文件在核心态运行和用户态运行的时间。 E:\课程\os课\os实验\程序\os12\debug>time TEST.exe 步骤4:运行结果 (如果运行不成功,则可能的原因是什么?) : 因为程序是个死循环程序 步骤5:分别屏蔽While循环中的两个for循环,或调整两个for循环的次数,写出运行结果。 屏蔽i循环: 屏蔽j循环: _______________________________________________________________________________调整循环变量i的循环次数:

操作系统期末考试试题

一、单项选择 1、在存储管理方案中,__D_____ 可与覆盖技术配合. A、页式管理 B、段式管理 C、段页式管理 D、可变分区管理 2、在存储管理中,采用覆盖与交换技术的目的是___A______。 A、节省主存空间 B、物理上扩充准存容量 C、提高CPU效率 D、实现主存共享 3、动态重定位技术依赖于___B______。 A、重定位装入程序 B、重定位寄存器 C、地址机构 D、目标程序 4、虚拟存储器的最大容量____A______。 A、为内外存容量之和 B、由计算机的地址结构决定 C、是任意的 D、有作业的地址空间决定 5、在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,但执行访问页号序列为1、2、3、4、1、2、5、1、、2、3、4、5、6时,将产生___D___次缺页中断。 A、7 B、8 C、9 D、10 6、设内存的分配情况如下图所示。若要申请一块40K字节的内存空间,若采用最佳适应算法,则所得到的分区首址为____C___。 A、100K B、190K C、330K D、410K 7、很好地解决了“零头”问题的存储管理方法是____A____。 A、页式存储管理 B、段式存储管理 C、多重分区管理 D、可变分区管理 8、系统“抖动”现象的发生是由___A___引起的。 A、置换算法选择不当 B、交换的信息量过大 C、内存容量不足 D、请求页式管理方案 9、在可变式分区存储管理中的拼接技术可以_____A___。 A、集中空闲区 B、增加主存容量 C、缩短访问周期 D、加速地址转换 10、分区管理中采用“最佳适应”分配算法时,宜把空闲区按____A__次序等记在空闲区表中。 A、长度递增 B、长度递减 C、地址递增 D、地址递减 11、在固定分区分配中,每个分区的大小是_C__。 A、相同 B、可以不同但根据作业长度固定 C、可以不同但预先固定 D、所作业长度变化

数据库实习报告

数据库实习报告 关于《数据库实习报告》,是我们特意为大家整理,希望对大家有所帮助。 ?次实习的主要任务是图书管理系统的开发。项目运行的平台是windowsxp,运用系统主要是microsoft visual studioxx,microsoft sql server xx,运用的知识主要有我们学习过的知识数据库技术,以及实习过程中所提及的知识。在软件开发果过程中首先要了解三层结构的的含义及其设计模式思想部署企业级数据库业务系统开发。 三层结构是一种成熟、简单并得到普遍应用的应用程序架构,它将应用程序结构划分三层独立的包,包括用户表示层、业务逻辑层、数据访问层。其中将实现人机界面的所有表单和组件放在表示层,将所有业务规则和逻辑的实现封装在负责业务逻辑组件中,将所有和数据库的交互封装在数据访问组件中。 三层结构示意图 三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。 下面介绍图书管理系统开发技术 一系统的功能设计 首先对系统进行需求分析,我们必须要知道要做一个系统“用来干什么”,这需要在对用户需求进行充分调研的基础上,深入理解并描述出软件的功能、性能、接口等方面的需求,可以使用uml建模作为需求分析和系统设计的有效方法。图(1)给出了本图书管理系统的功能结构图,其工作流程为:普通用户直接登录主页面,只能浏览、快速查询图书、注册新用户、修改自己的密码以及查看图书的详情,管理员用户除了可以完成普通用户的操作外,还可以进入图书管理模块进行图书添加、修改和删除的操作。 1、系统的功能特点

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

(完整word版)操作系统期末试题及答案,推荐文档

( 答案在后面) 一、 填空题(每空1分,共10分) 1. 常见的I/O 控制方式有程序I/O 方式、 中断 I/O 控制方式、 DMA I/O 控制方式和 通道 I/O 控制方式四种。 2. 操作系统向用户提供的两个基本接口是 程序 接口和 用户 接口。 3. 若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,逻辑地址 (3082)10转化得到的物理地址是 6154 。 4. 具有多路性、独立性、 及时性和交互性特征的操作系统是 分时 操作系统。 5. 通道用于控制 设备控制器 与内存之间的信息交换。 6. 事务的最基本特性 是 。 7. 若盘块大小为4KB ,每 个盘块号占4字节,在采用两级索引时允许的最大文件长度为 4GB 。 二、 单选题(每题2分,共20分) 1. 用磁带作为文件存贮介质时,文件只能组织成( )。 A. 顺序文件 B. 链接文件 C. 索引文件 D. 目录文件 2. 一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,则其响应比是( C )。 A. 2 B. 1 C. 3 D. 0.5 3. 文件系统采用多级目录结构后,对于不同用户的文件,其文件名( C )。 A. 应该相同 B. 应该不同 C. 可以相同,也可以不同 D. 受系统约束

4.死锁预防是保证系统不进入死锁状态的静态策略,其解决方法是破坏 产生死锁的四个必要条件之一。下列方法中破坏了“循环等待”条件 的是( D )。 A. 银行家算法 B. 一次性分配策略 C. 剥夺资源法 D. 资源有序分配法 5.进程状态从就绪态到运行态的转化工作是由( B )完成的。 A. 作业调度 B. 进程调度 C. 页面调度 D. 设备调度 6.采用缓冲技术的主要目的是( C )。 A. 改善用户编程环境 B. 提高CPU的处理速 度 C. 提高CPU和设备间的并行程度 D. 实现与设备无关性 7.目录文件所存放的信息是( D )。 A. 该目录中所有数据文件目录 B. 某一文件存放的数 据信息 C. 某一个文件的文件目录 D. 该目录中所有文件 的目录 8.最容易形成很多小碎片的可变分区分配算法是( D )。 A. 首次适应算法 B. 循环首次适应算法 C. 最坏适应算法 D. 最佳适应算法 9.用户程序与实际使用的物理设备无关是由( A )功能实现的。 A. 设备独立性 B. 设备驱动 C. 虚拟设备 D. 设备分配 10.下面关于顺序文件、链接文件和索引文件的论述中不正确的是 ( A )。 A. 显示链接文件是在每个盘块中设置一个链接指针,用于将该文件所属的 所有盘块链接起来

相关文档
最新文档