计算机统考真题1:磁盘旋转速度、学校分类、进程同步与互斥

需积分: 0 0 下载量 183 浏览量 更新于2023-12-16 收藏 1.52MB DOCX 举报
计算机统考真题1中,第一个问题是要求根据给定的访问序列,计算虚地址1565H的物理地址。该问题没有给定具体的地址映射方式,因此无法直接得到物理地址。虚地址1565H是一个16进制数,转为10进制为5477。物理地址的计算需要根据具体的地址映射方式,如果采用分段式地址映射,则需要将虚地址分为段号和段内偏移量,然后根据段表和页表进行地址转换。如果采用页式地址映射,则需要将虚地址分为页号和页内偏移量,然后根据页表进行地址转换。根据题目给出的信息不足以进行详细的计算,因此无法给出具体的物理地址。 第二个问题是关于一个单面磁盘的旋转速度和磁道扇区的信息,并要求计算相邻磁道之间的平均移动时间。题目中给出的磁盘转速为每分钟6000转,每个磁道有100个扇区。平均移动时间可以通过计算相邻磁道之间的距离和磁头在移动过程中的速度来得到。在一个磁盘转一圈的时间内,磁头会依次经过每个磁道,因此相邻磁道之间的距离可以看作是磁盘半径的1/100。假设磁头在移动时的速度恒定,那么平均移动时间就是一次移动的时间。由于磁头在旋转过程中是随机停在不同的扇区上,因此平均移动时间的计算还需要考虑磁头在当前磁道上跳跃到目标扇区的时间。根据题目给出的信息,无法计算出具体的平均移动时间。 第三个问题是关于招聘教师的信息,并要求按照学校的类别进行分类。题目给出的学校有以下几个类别:985类、211类和其他。985类的学校有:中科大、浙大、上交、复旦、同济、华工、中大华南理工、华东师大。211类的学校有:上海大学、西北大学、武汉理工大。其他类的学校有:深圳大学、宁波大学。根据题目给出的分类,可以将学校按照类别进行归类。 最后一个问题是关于三个进程之间的同步与互斥活动的实现。根据题目的描述,三个进程P1、P2、P3互斥使用一个缓冲区,P1负责生成正整数并放入缓冲区,P2负责取出缓冲区中的奇数并统计奇数个数,P3负责取出缓冲区中的偶数并统计偶数个数。为了实现进程间的同步和互斥,可以使用信号量机制。根据题目提供的信息,可以定义四个信号量:S1表示奇数个数,S2表示偶数个数,empty表示空位置个数,Mutex表示控制进程间互斥使用缓冲区。 同时定义四个初始值为0或1的信号量变量:s1、s2、empty、mutex。然后使用伪代码描述如下: Cobegin P1: begin X=produce(); // 生成一个数 P(empty); // 判断缓冲区是否有空单元 P(mutex); // 缓冲区互斥 put(x); // 将生成的数放入缓冲区 V(mutex); // 释放缓冲区互斥 V(s1); // 奇数个数+1 P2: begin P(s1); // 判断是否有奇数 P(mutex); // 缓冲区互斥 x=getodd(); // 从缓冲区中取出一个奇数 countodd(); // 统计奇数个数 V(mutex); // 释放缓冲区互斥 V(empty); // 释放空位置 V(s2); // 偶数个数+1 P3: begin P(s2); // 判断是否有偶数 P(mutex); // 缓冲区互斥 x=geteven(); // 从缓冲区中取出一个偶数 counteven(); // 统计偶数个数 V(mutex); // 释放缓冲区互斥 V(empty); // 释放空位置 Coend 以上是使用信号量机制实现三个进程的同步与互斥活动的伪代码描述。其中P表示P操作,V表示V操作。S1、S2、empty和Mutex表示四个信号量。P(empty)表示判断缓冲区是否有空单元,如果没有空单元,则进程阻塞等待。P(mutex)表示互斥操作,用于控制进程对缓冲区的互斥访问。put(x)表示将生成的数放入缓冲区。P(s1)和P(s2)分别表示判断是否有奇数和偶数,如果没有则进程阻塞等待。x=getodd()和x=geteven()分别表示从缓冲区中取出一个奇数和偶数。countodd()和counteven()分别表示统计奇数和偶数的个数。V操作用于释放信号量。