文档库 最新最全的文档下载
当前位置:文档库 › 任何程序都必须加载到什么中才能被cpu执行

任何程序都必须加载到什么中才能被cpu执行

任何程序都必须加载到什么中才能被cpu执行
任何程序都必须加载到什么中才能被cpu执行

任何程序都必须加载到什么中才能被cpu执行

邢如意

程序被CPU的执行过程,是经过了多个阶段的。要想明白这个流程需要先解决以下问题:

1.什么是程序?

2.CPU的内部结构是什么?

3.程序的执行流程是什么?

下面依次来说明。

一、什么是程序?

通常理解程序就是可以运行的软件。其实从专业角度来看,程序是由源程序编译而来的。源程序是一段文本字符,这些文本字符是按照特定语法编写的。例如C语言的源程序,即使用C语言编译;JAVA源程序,即使用JAVA语言并按照JAVA语言的语法编写。这些源程序最终以文件形式保存,例如C语言程序保存为后缀为.c的文件。

源程序必须经过编译才能变成程序文件,从而运行起来。编译的过程,是一个从高级语言到低级语言的转化过程。因为计算机本身只能处理低级语言,例如二进制指令、汇编指令。而人类不能使用这些指令编写程序,因此人类发明了更接近自然语言的高级程序设计语言,例如C语言、JAVA语言。

这些高级语言,在设计上与人类的自然语言更为接近,编写的代码也更好理解。不同的编程语言编译的过程不同,采用的编译器不同,运行的原理也不尽相同。例如C语言的源程序,在编译时分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。如图1所示。

图1C语言的编译过程

二、CPU的内部结构

了解程序运行时发生了什么,需要先了解一下典型的系统硬件结构。如图2所示。

图2系统组成结构

图2清楚的描述了CPU与其它设备之间的关系。输入及输出设备即IO设备,是系统与外界的联系通道。每个IO设备都通过一个控制器或适配器与总线连接起来。

主要存储器是唯一能与CPU直接通信的设备。主存是一个临时存储设备,在处理器执行程序时,它被用来存放程序和程序处理的数据。物理上来说,主存就是一组DRAM芯片组成的。逻辑上来说,存储器是一个线性的字节数组组成的。

处理器CPU中计算机的中央大脑,是解释(或执行)存储在主存中指令的引擎。处理器的核心是一个被称为程序计数器PC的字长大小存储设备。任何一个时间点,PC都指向主存中某条机器语言指令(地址)。从系统加电开始,CPU一直在重复此项任务。图3展示了CPU的内部结构。

图3CPU内部结构

三、程序的执行流程

通过对系统的硬件组成和操作的简单学习,你可以了解程序在运行时发生了什么。程序的执行离不开人为的启动。即任何程序都是通过人为的操作(单击、双击等)来触发的。

计算机系统提供了一个SHELL(壳)环境用于实现用户与计算机之间的交互渠道。例如计算机提供的命令行工具,即可以理解为SHELL。

当程序员在命令行中输入程序的名称时,SHELL程序就会读取到每个字符,并将其存储在CPU的寄存器中,当用户点击回车时,SHELL就知道命令结束了。此时,SHEL将程序文件中的代码和数据从硬盘拷贝到主存中,从而实现了加载程序文件。

当程序文件(代码和数据)被加载到主存中,CPU就开始从主存中读取机器语言指令。对于有回显的指令,执行完后会将结果(一般都为字符)从寄存吕拷

贝到显示设备上(显示器)。

图4展示了程序被执行的过程。

图4程序执行过程

四、总结

最后总结一下,CPU中执行的指令都从【主存】中获取的。CPU读取到的都是机器级别的指令(汇编等)。而程序在编写时,使用的是类似于人类自然语言的高级程序语言。

C语言是一种面向过程的、适合于系统级程序开发的语言。其源文件经过编译后,最终形成汇编指令,是当前所有编程语言中运行最快的语言。

如果希望学习更多计算机内部运行过程的知识,建议阅读《操作系统概念》、《深入理解计算机系统》这两本书。

操作系统精髓与设计原理-第3章 进程描述和控制

第3章进程描述和控制 复习题: 3.1什么是指令跟踪? 答:指令跟踪是指为该进程而执行的指令序列。 3.2通常那些事件会导致创建一个进程? 答:新的批处理作业;交互登录;操作系统因为提供一项服务而创建;由现有的进程派生。(详情请参考表3.1) 3.3对于图3.6中的进程模型,请简单定义每个状态。 答:运行态:该进程正在执行。就绪态:进程做好了准备,只要有机会就开始执行。 阻塞态:进程在某些事件发生前不能执行,如I/O操作完成。新建态:刚刚创建的进程,操作系统还没有把它加入到可执行进程组中。退出态:操作系统从可执行进程组中释放出的进程,或者是因为它自身停止了,或者是因为某种原因被取消。 3.4抢占一个进程是什么意思? 答:处理器为了执行另外的进程而终止当前正在执行的进程,这就叫进程抢占。 3.5什么是交换,其目的是什么? 答:交换是指把主存中某个进程的一部分或者全部内容转移到磁盘。当主存中没有处于就绪态的进程时,操作系统就把一个阻塞的进程换出到磁盘中的挂起队列,从而使另一个进程可以进入主存执行。 3.6为什么图3.9(b)中有两个阻塞态? 答:有两个独立的概念:进程是否在等待一个事件(阻塞与否)以及进程是否已经被换出主存(挂起与否)。为适应这种2*2的组合,需要两个阻塞态和两个挂起态。3.7列出挂起态进程的4个特点。 答:1.进程不能立即执行。2.进程可能是或不是正在等待一个事件。如果是,阻塞条件不依赖于挂起条件,阻塞事件的发生不会使进程立即被执行。3.为了阻止进程执行,可以通过代理把这个进程置于挂起态,代理可以是进程自己,也可以是父进程或操作系统。4.除非代理显式地命令系统进行状态转换,否则进程无法从这个状态中转移。 3.8对于哪类实体,操作系统为了管理它而维护其信息表? 答:内存、I/O、文件和进程。 3.9列出进程控制块中的三类信息。 答:进程标识,处理器状态信息,进程控制信息。 3.10为什么需要两种模式(用户模式和内核模式)? 答:用户模式下可以执行的指令和访问的内存区域都受到限制。这是为了防止操作系统受到破坏或者修改。而在内核模式下则没有这些限制,从而使它能够完成其功能。 3.11操作系统创建一个新进程所执行的步骤是什么? 答:1.给新进程分配一个唯一的进程标识号。2.给进程分配空间。3.初始化进程控制块。 4.设置正确的连接。 5.创建或扩充其他的数据结构。 3.12中断和陷阱有什么区别? 答:中断与当前正在运行的进程无关的某些类型的外部事件相关,如完成一次I/O操作。陷阱与当前正在运行的进程所产生的错误或异常条件相关,如非法的文件访问。 3.13举出中断的三个例子。 答:时钟终端,I/O终端,内存失效。 3.14模式切换和进程切换有什么区别? 答:发生模式切换可以不改变当前正处于运行态的进程的状态。发生进程切换时,一个正在执行的进程被中断,操作系统指定另一个进程为运行态。进程切换需要保存更

第3章 进程同步与通信 练习题答案

第3章进程同步与通信练习题 (一)单项选择题 1.临界区是指( )。 A.并发进程中用于实现进程互斥的程序段 B.并发进程中用于实现进程同步的程序段 C.并发进程中用户实现进程通信的程序段 D.并发进程中与共享变量有关的程序段 2.相关临界区是指( )。 A.一个独占资源 B.并发进程中与共享变量有关的程序段 c.一个共享资源 D.并发进程中涉及相同变量的那些程序段 3.管理若干进程共享某一资源的相关临界区应满足三个要求,其中( )不考虑。 A一个进程可以抢占己分配给另一进程的资源 B.任何进程不应该无限地逗留在它的临界区中c.一次最多让一个进程在临界区执行 D.不能强迫一个进程无限地等待进入它的临界区4、( )是只能由P和v操作所改变的整型变量。 A共享变量 B.锁 c整型信号量 D.记录型信号量 5.对于整型信号量,在执行一次P操作时,信号量的值应( )。 A.不变 B.加1 C减1 D.减指定数值 6.在执行v操作时,当信号量的值( )时,应释放一个等待该信号量的进程。 A>0 B.<0 c.>=0 D.<=0 7.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。 A初始化程序 B.原语 c.子程序 D控制模块 8.进程间的互斥与同步分别表示了各进程间的( )。 A.竞争与协作 B.相互独立与相互制约 c.不同状态 D.动态性与并发性 9并发进程在访问共享资源时的基本关系为( )。 A.相互独立与有交往的 B.互斥与同步 c并行执行与资源共享 D信息传递与信息缓冲 10.在进程通信中,( )常用信件交换信息。 A.低级通信 B.高级通信 c.消息通信 D.管道通信 11.在间接通信时,用send(N,M)原语发送信件,其中N表示( )。 A.发送信件的进程名 B.接收信件的进程名 C信箱名 D.信件内容 12.下列对线程的描述中,( )是错误的。 A不同的线程可执行相同的程序 B.线程是资源分配单位 c.线程是调度和执行单位 D.同一 进程中的线程可共享该进程的主存空间 13.实现进程互斥时,用( )对应,对同一个信号量调用Pv操作实现互斥。 A.一个信号量与一个临界区 B.一个信号量与—个相关临界区 c.一个信号量与一组相关临界 区 D一个信号量与一个消息 14.实现进程同步时,每一个消息与一个信号量对应,进程( )可把不同的消息发送出去。 A.在同一信号量上调用P操作 B在不同信号量上调用P操作 c.在同一信号量上调用v操作D.在不同信号量上调用v操作 (二)填空题 1.目前使用的计算机的基本特点是处理器______执行指令。 2.进程的______是指进程在顺序处理器上的执行是按顺序进行的。 3.当一个进程独占处理器顺序执行时,具有______和______两个特性。 4.进程的封闭性是指进程的执行结果只取决于______,不受外界影响。 5 进程的可再现性是指当进程再次重复执行时,必定获得______的结果。 6.一个进程的工作在没有全部完成之前,另一个进程就可以开始工作,则称这些进程为______.

第3章处理器调度

第3章处理器调度 一、填空 1.一个操作系统的可扩展性,是指该系统能够跟上先进计算机技术发展的能力。 2.在引入线程的操作系统中,线程是进程的一个实体,是进程中实施调度和处理机分派的基本单位。 3.一个线程除了有所属进程的基本优先级外,还有运行时的动态优先级。 4.进程调度程序具体负责处理器的分配。 5.为了使系统的各种资源得到均衡使用,进行作业调度时,应该注意cpu繁忙型作业和输入/输出繁忙型作业的搭配。 6.总的来说,进程调度有两种方式,即剥夺方式和不剥夺方式。 7.作业被系统接纳后到运行完毕,一般还需要经历后备、运行和完成三个阶段。 8.假定一个系统中的所有作业同时到达,那么使作业平均周转时间为最小的作业调度算法是短作业优先调度算法。 二、选择 1.计算机系统在执行时,会自动从目态变换到管态。 A.P操作B.V操作C.系统调用D.I/O指令2.在Windows 2000/XP中,只有状态的线程才能成为被切换成运行状态,占用处理器执行。 A.备用B.就绪C.等待D.转换 3.Windows 2000/XP是采用来实现对线程的调度管理的。 A.线程调度器就绪队列表 B.线程调度器就绪队列表、就绪位图 C.线程调度器就绪队列表、就绪位图、空闲位图 D.线程调度器就绪队列表、空闲位图 4.在Windows 2000/XP里,一个线程的优先级,会在时被系统降低。 A.时间配额用完B.请求I/O C.等待消息D.线程切换6.由各作业JCB形成的队列称为。 A.就绪作业队列B.阻塞作业队列 C.后备作业队列D.运行作业队列 7.既考虑作业等待时间,又考虑作业执行时间的作业调度算法是。 A.响应比高者优先B.短作业优先 C.优先级调度D.先来先服务 8.作业调度程序从处于状态的队列中选取适当的作业投入运行。 A.就绪B.提交C.等待D.后备9.是指从作业提交到作业完成的时间间隔。

操作系统实验-进程控制

实验一、进程控制实验 1.1 实验目的 加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux 系统中进程创建与控制有关的系统调用的编程和调试技术。 1.2 实验说明 1)与进程创建、执行有关的系统调用说明进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过exec()系统调用族装入一个新的执行程序。父进程可以使用wait()或waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。 fork()系统调用语法: #include pid_t fork(void); fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1. exec 系统调用有一组6 个函数,其中示例实验中引用了execve 系统调用语法: #include int execve(const char *path, const char *argv[], const char * envp[]); path 要装入 的新的执行文件的绝对路径名字符串. argv[] 要传递给新执行程序的完整的命令参数列表(可以为空). envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空).

Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。如果exec 调用失败,它会返回-1。 wait() 系统调用语法: #include #include pid_t wait(int *status); pid_t waitpid(pid_t pid,int *status,int option); status 用 于保留子进程的退出状态 pid 可以为以下可能值: -1 等待所有PGID 等于PID 的绝对值的子进程 1 等待所有子进程 0 等待所有PGID 等于调用进程的子进程 >0 等待PID 等于pid 的子进程option 规 定了调用waitpid 进程的行为: WNOHANG 没有子进程时立即返回 WUNTRACED 没有报告状态的进程时返回 wait 和waitpid 执行成功将返回终止的子进程的进程号,不成功返回-1。 getpid()系统调用语法: #include #include pid_t getpid(void); pid_t getppid(void); getpid 返回当前进程的进程号,getppid 返回当前进程父进程的进程号 2)与进程控制有关的系统调用说明可以通过信号向一个进程发送消息以控制进程的 行为。信号是由中断或异常事件引发的,如:键盘中断、定时器中断、非法内存引

《计算机操作系统》第01章在线测试

《计算机操作系统》第01章在线测试 《计算机操作系统》第01章在线测试剩余时间:52:01 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、与应用软件相比,操作系统一般不负责()。 A、管理系统资源 B、控制程序执行 C、改善人机界面 D、解决应用领域的业务问题 2、计算机系统的组成包括()。 A、程序和数据 B、处理器和内存 C、计算机硬件和计算机软件 D、处理器、存储器和外围设备 3、操作系统中对软件资源进行管理的主要模块是()。 A、处理器管理子系统 B、存储管理子系统 C、设备管理子系统 D、文件系统 4、将内存空间划分为多个物理块,每个进程占用若干物理块的存储管理方法体现了资源管理技术的()思想。 A、空分复用 B、时分复用 C、资源虚化 D、资源抽象 5、多道程序设计是指()。 A、有多个程序同时进入CPU运行 B、有多个程序同时进入主存并发运行 C、程序段执行不是顺序的 D、同一个程序可以对应多个不同的进程第二题、多项选择题(每题2分,5道题共10分) 1、下面程序语句中与设备管理相关的有()。

A、scanf(“%d”,&a); B、printf(“%d”,a); C、a=b+c; D、int a,b; 2、下面资源使用方式属于空分复用的有()。 A、内存分页 B、处理器分时轮转 C、磁盘分为磁盘块 D、进程分为线程 3、下面属于操作接口的有()。 A、操作命令 B、批处理用户接口 C、图形用户接口 D、系统调用 4、操作系统的主要构件包括()。 A、内核 B、进程 C、线程 D、管程 E、处理器 F、内存 G、设备

操作系统进程控制与调度

操作系统实验报告 2012年12月19 日 一、实验内容 1、自定义进程相关的数据结构; 2、利用MFC类库中的栈(queue),链表(list),向量(vector)等模板模拟进程控制块队列、进 程控制块优先级队列、统计信息链表及其指令集合; 3、利用MSDN和MFC API编程实现常见的进程控制和调度策略(先来先服务算法、时间 片轮转算法、最高优先权优先调度算法、最短进程优先调度算法); 4、测试以上进程调度策略的周转时间、带权周转时间、平均周转时间和平均带权周转时间,并定性评价它们的性能。 二、实验要求 用高级语言编写和调试进程调度的模拟程序,以加深对进程调度算法的理解。 三、实验步骤 typedef struct PCBNode { int ID; int Priority; int CPUtime; int Alltime; int Arrivetime; int state; int counter; struct PCBNode *next; }PCB;//定义数据结构 PCB *run; PCB *ready; PCB *over; PCB *head; //定义状态量 int Min(PCB *head)//挑选出队列中的拥有最小alltime 值的块,返回块号,用于sjf 算法 { PCB *p;//q用来记录这个块的地址 int min,id;//记录最小值和块号 p=head->next; if(p) { min=p->Alltime; id=p->ID;

while(p->next) { if(min>p->next->Alltime) { min=p->next->Alltime; id=p->next->ID; p=p->next; } else { p=p->next; } } } return id; } int Max(PCB *head)//挑选出队列中的拥有最大优先级的块,返回块号,用于prio 算法 { PCB *p;//q用来记录这个块的地址 int max,id;//记录最大和块号 p=head->next; if(p) { max=p->Priority; id=p->ID; while(p->next) { if(max<=p->next->Priority) { max=p->next->Priority; id=p->next->ID; p=p->next; } else { p=p->next; } } } return id; } PCB *CreatPCB(int n) {

15春学期《操作系统原理》在线作业

15春学期《操作系统原理》在线作业 试卷总分:100 测试时间:-- 试卷得分100 一、单选题(共20 道试题,共40 分。)V 1. 文件系统采用多级目录结构可以() A. 节省存储空间 B. 解决命名冲突 C. 缩短文件传送时间 D. 减少系统开销 B 满分:2 分 2. 在下述存储管理技术中,只有()可提供虚拟存储基础 A. 动态分区法 B. 交换技术 C. 静态分页法 D. 动态分页 D 满分:2 分 3. 下列对于进程的描述哪项是错误的 A. 各进程之间的地址是相互独立的 B. 进程控制块PCB是在系统调用进程时随机生成的 C. 进程是静态的 D. 进程同程序相比具备并发和异步执行特征 C 满分:2 分 4. 程序执行时下一条执行指令的地址放在()寄存器中 A. IR B. PSW C. PC C 满分:2 分 5. 一个进程从内存中换出到外存时,该进程被称作为() A. 被阻塞 B. 被终止 C. 唤醒 D. 被挂起 D 满分:2 分 6. 在分页存储管理系统中,从页号到物理块号的地址映射是通过()实现的 A. 段表 B. 页表 C. PCB D. JCB B 满分:2 分 7. 在UNIX系统进程调度中,当计算的进程优先数越大时其优先级将() A. 越大 B. 越小 B B 满分:2 分 8. 在文件管理中,使用链式结构可以实现()

A. 磁盘驱动控制 B. 磁盘空间分配与回收 C. 文件目录查找 D. 页面置换 B 满分:2 分 9. 在时间片轮转(RR)法中,如果时间片过长,该算法会退化为()算法。 A. 短进程优先(SPN) B. 时间片轮转(RR) C. 先来先服务(FCFS) D. 优先级法(PS) C 满分:2 分 10. 当为一个新创建的进程分配资源和建立了PCB后,进程将进入() A. 运行态 B. 阻塞态 C. 就绪态 D. 退出态 C 满分:2 分 11. 在系统中增加cache可以缓解()之间的速度不匹配性。 A. 硬盘与内存 B. 内存与处理器 C. 内存与I/O设备 D. 硬盘与I/O设备 B 满分:2 分 12. 中断管理程序不包括下列哪项功能 A. 确定发生中断的特性 B. 将控制权切换到处理程序 C. 执行具体的处理过程 D. 将控制权切换到原执行程序 C 满分:2 分 13. 在时间片轮转(RR)法中,如果时间片过长,该算法会退化为()算法。 A. 短进程优先(SPN) B. 时间片轮转(RR) C. 先来先服务(FCFS) D. 优先级法(PS) C 满分:2 分 14. 下列分区管理的分配算法中,分配与释放时间性能最好的是() A. 最先匹配法 B. 最佳匹配法 C. 下次匹配法 D. 最坏匹配法 A 满分:2 分 15. 在下列的文件物理存储结构中最不便于进行文件扩充的结构是() A. 散列文件 B. 链接文件

CPU调度E

1.First come first served 2.Shortest job/process first 3.Shortest remaining time next 4.Round robin (quantum=2) 5.Round robin (quantum=1) 6.Priority (1-high priority, preemptive) 7.Priority (1-high priority, non-preemptive) Answer: 1.A:6B:11C:12D:13Mean turnaround time=(6+11+12+13)/4=42/4=10.5 2.A:6B:15C:5D:6Mean turnaround time=(6+15+5+6)/4=8 3.A:10B:15C:2D:3Mean turnaround time=(10+15+2+3)/4=7.5 4.A:10B:15C:5D:8Mean turnaround time=(10+15+5+8)/4=9.5 5.A:13B:15C:7D:8Mean turnaround time=(13+15+7+8)/4=8.25 6.A:13,B:7,C:12,D:13Mean turnaround time=(13+7+12+13)/4=11.25 7.A:6,B:11,C:12,D:13Mean turnaround time=(6+11+12+13)/4=10.5 For the processes listed in the following table, please write out the turnaround time of each process and the average turnaround time for the following algorithms. You must write out the computing course. 1.Shortest remaining time next 2.Round robin (quantum=3s, run in order A,B,C,D) A turnaround time is 7s B turnaround time is 20s C turnaround time is 12s D turnaround time is 3s

操作系统实验-进程控制

实验一、进程控制实验 实验目的 加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练习Linux 系统中进程创建与控制有关的系统调用的编程和调试技术。 实验说明 1)与进程创建、执行有关的系统调用说明进程可以通过系统调用fork()创建子进程并和其子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过exec()系统调用族装入一个新的执行程序。父进程可以使用wait()或waitpid()系统调用等待子进程的结束并负责收集和清理子进程的退出状态。 fork()系统调用语法: #include <> pid_t fork(void); fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1. exec 系统调用有一组6 个函数,其中示例实验中引用了execve 系统调用语法: #include <> int execve(const char *path, const char *argv[], const char * envp[]); path 要装入的新的执行文件的绝对路径名字符串. argv[] 要传递给新执行程序的完整的命令参数列表(可以为空). envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空). Exec 执行成功后将用一个新的程序代替原进程,但进程号不变,它绝不会再返回到调用进程了。如果exec 调用失败,它会返回-1。 wait() 系统调用语法: #include #include pid_t wait(int *status); pid_t waitpid(pid_t pid,int *status,int option); status 用于保留子进程的退出状态pid 可以为以下可能值: -1 等待所有PGID 等于PID 的绝对值的子进程 1 等待所有子进程 0 等待所有PGID 等于调用进程的子进程 >0 等待PID 等于pid 的子进程option 规定了调用waitpid 进程的行为: WNOHANG 没有子进程时立即返回 WUNTRACED 没有报告状态的进程时返回 wait 和waitpid 执行成功将返回终止的子进程的进程号,不成功返回-1。 getpid()系统调用语法: #include #include <> pid_t getpid(void); pid_t getppid(void); getpid 返回当前进程的进程号,getppid 返回当前进程父进程的进程号

第2章 处理器管理 练习题

第2章处理器管理 1.操作系统中采用多道程序设计技术提高CPU和外部设备的( A ) A. 利用率B.可靠性 C. 稳定性 D. 兼容性 2.多道程序设计是指( D ) A.在实时系统中并发运行多个程序 B.在分布系统中同一时刻运行多个程序 C.在一台处理机上同一时刻运行多个程序 D.在一台处理机上并发运行多个程序 3.一个进程退出等待队列而进入就绪队列,是因为进程( C ) A.启动了外设 B.用完了规定的时间片 C.获得了所等待的资源 D.能得到所等待的处理器 4.下列进程状态变化中,不可能发生的变化是( C )A.运行->就绪B.运行->等待C.等待->运行D.等待->就绪 5.正在执行的进程由于其时间片用完而被暂停运行,此时其进程应从运行态变为( C )A.运行态B.等待态C.就绪态D.由用户确定 6.若当前进程因时间片用完而让出处理机时,该进程应转变为哪个状态?( A ) A. 就绪 B. 等待 C. 运行 D. 完成 7.进程从运行状态进入就绪状态的原因可能是(D) A. 被选中占有处理机 B. 等待某一事件 C. 等待的事件已发生 D. 时间片用完 8.一个作业被调度进入内存后其进程被调度进入CPU运行,在执行一段指令后,进程请求 打印输出,此间该进程的状态变化是( C )A. 运行态-就绪态-等待态 B. 等待态-就绪态-运行态 C. 就绪态-运行态-等待态 D. 就绪态-等待态-运行态 9.某计算机系统中若同时存在五个进程,则处于等待状态的进程最多可有( D ) A. 0个 B. 1个 C. 4个 D. 5个 10.进程创建原语的任务是( B )A.为进程编制程序B.为进程建立PCB表 C.为进程分配CPU D.为进程分配内存 11.中断装置检查有无中断事件发生总是发生在处理器( C )

实验一___处理器调度(设计一个按时间片轮转法实现处理器调度的程序)

实验一处理器调度 一、实验内容 选择一个调度算法,实现处理器调度。 二、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实习模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。 三、实验题目 第二题:设计一个按时间片轮转法实现处理器调度的程序。 [提示]: (1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。进程控制块的 格式为: 其中,Q1,Q2,Q3,Q4,Q5。 指针——进程按顺序排成循环队列,用指针指出下一个进程的进程控制块的首地址最后一个进程的指针指出第一个进程的进程控制块首地址。 要求运行时间——假设进程需要运行的单位时间数。 已运行时间——假设进程已经运行的单位时间数,初始值为“0”。 状态——有两种状态,“就绪”和“结束”,初始状态都为“就绪”,用“R”表示。 当一个进程运行结束后,它的状态为“结束”,用“E”表示。 (2) 每次运行所设计的处理器调度程序前,为每个进程任意确定它的“要求运行时间”。 (3) 把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行的进程。例如,当前轮到P2执行,则有: 标志单元 K1 K2 K 3 K4 K5 (4)处理器调度总是选择标志单元指示的进程运行。由于本实习是模拟处理器调度的 功能,所以,对被选中的进程并不实际的启动运行,而是执行: 已运行时间+1 来模拟进程的一次运行,表示进程已经运行过一个单位的时间。 请同学注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这时省去了这些工作,仅用“已运行时间+1”来表示进程已

2014操作系统复习题(含答案)

2013操作系统复习资料 一、单项选择题 1.影响分时系统响应时间的是(D) A.每个应用进程分配的时间片长度B.进程大小 C.就绪进程数目D.就绪进程数目和时间片长度 2.计算机系统中设置的访管指令(a ) A.只能在目态执行B.只能在管态执行 C.既可在目态又可在管态执行D.在目态和管态下都不能执行 3.原语应是(C) A.操作系统中的一个函数 B.操作系统中的一个过程 C.操作系统中的一个执行不可中断的过程 D.操作系统中的一个执行可中断的函数 4.以下属于可变分区常用主存分配算法的是(A ) A. 最优适应 B. 最快适应 C.最大适应 D.最长适应 5.通常,用户进程被建立后(B) A.便一直存在于系统中,直到被操作人员撤消 B.随着程序运行正常或异常结束而撤消 C.随着时间片轮转而撤消与建立 D.随着进程的阻塞或唤醒而撤消与建立 6.在页式虚拟存储管理中,为实现地址变换,应建立(C) A.空闲区表B.分区分配表C.页表D.移动表 7.7. SPOOL技术用于( C ) A. 处理器管理 B. 存储管理 C. 设备管理 D. 文件管理 8.在可变分区分配方案中,在空闲区表中以空闲区长度按递减顺序排列适合于( A )A.最坏适应算法B.最先适应算法C.最优适应算法D.首次循环适应算法 9.用户程序发出磁盘I/O请求后,系统的正确处理流程是(B ) A.用户程序→系统调用处理程序→中断处理程序→设备驱动程序 B.用户程序→系统调用处理程序→设备驱动程序→中断处理程序 C.用户程序→设备驱动程序→系统调用处理程序→中断处理程序

D.用户程序→设备驱动程序→中断处理程序→系统调用处理程序 10.对特权指令、系统调用和访管指令有关描述正确的是( B ) A.“启动I/O”不是特权指令 B.修改“基址寄存器”和“限长寄存器”的指令是特权指令 C.“访管指令”是在管态下执行的指令 D.“系统调用”是在目态下执行的程序 11.从磁盘读取数据的下列时间中,对系统效率影响最大的是( D ) A.处理时间B.传输时间C.延迟时间D.寻道时间 12.以下关于进程的并发执行描述正确的是(A) A.多个进程在某个时间段内轮流占用处理器执行 B.多个进程在某个时刻同时占用处理器执行 C.单处理器的系统也允许进程并发执行 D.只有多处理器的系统才能允许进程并发执行 13.造成某进程状态从就绪态转变成运行态的原因是(D ) A.上次分配给该进程的处理器时间太短B.有更高优先级的进程要运行C.该进程需要更多的处理器时间运行D.该进程被进程调度程序选中14.逻辑文件必须存放在连续存储空间中的存储结构有(B ) A.链接结构B.顺序结构C.索引结构D.流式结构 15.文件系统与什么密切相关,它们共同为用户使用文件提供方便(C)A.处理器管理B.存储管理C.设备管理D.作业管理 16.页式存储管理采用的装入作业方式是(B ) A.静态重定位 B.动态重定位 C.静态和动态重定位 D.以上都不是 17.以下存储管理技术中,可以实现虚拟存储器的技术是( D ) A.单用户连续存储管理B.固定分区存储管理 C.可变分区存储管理D.页式存储管理 18.PCB全称(B) A.进程队列 B.进程控制块 C.进程状态 D.进程对象 19.从用户观点看,文件系统的主要目的是(A) A.实现对文件的按名存取B.实现虚拟存储 C.提高外存的读写速度D.用于存储系统文件 20.对文件的存取方式有关描述正确的是( A ) A.顺序结构文件可以随机存取 B.链式结构文件采用随机存取是高效的 C.索引结构文件不能顺序存取 D.链式结构文件可以顺序存取

操作系统进程控制

操作系统课程设计实验报告 实验名称:进程控制 姓名/学号:xx 20091758 一、实验目的 设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。 二、实验内容 一、在Windows下实现: ?使用CreateProcess()来创建进程 ?使用WaitForSingleObject()在“mytime”命令和新创建的进程之间同步 ?调用GetSystemTime()来获取时间 在Linux下实现: ?使用fork()/execv()来创建进程运行程序 ?使用wait()等待新创建的进程结束 ?调用gettimeofday()来获取时间 mytime的用法: $ mytime.exe program1 三、实验环境 操作系统:Windows7旗舰版 处理器:Intel Core2 Duo p7450 2.13GHz 内存:2.00GB 32位操作系统 LINUX版本信息:Linux ubuntu 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux

四、程序设计与实现 一.windows下的实验 1、创建进程之前先用系统函数getsystemtime获取当前时间。 SYSTEMTIME systime; GetSystemTime(&systime); 2、调用createprocess函数创建进程: BOOL bRet = CreateProcess( NULL, //不在此指定可执行文件的文件名 argv[1], //命令行参数 NULL, //默认进程安全性 NULL, //默认线程安全性 FALSE, //当前进程内的句柄不可以被子进程继承 CREATE_NEW_CONSOLE, //为新进程创建一个新的控制台窗口 NULL, //使用本进程的环境变量 NULL, //使用本进程的驱动器和目录 &si, //父进程传给子进程的一些信息 &pi); //保存新进程信息的结构 由于要使用命令行来创建进程,,所以我的createprocess函数第一个参数设置为NULL,通过第二个参数在命令行里实现创建进程。 3、使用等待函数来等待所创建进程的死亡。 WaitForSingleObject(pi.hProcess,INFINITE); 4、再次取得系统当前时间,与上次取得时间作差,得到进程运行时间。 具体做法是:将两次时间对应位作差,然后换算成相应秒数。 t=(systime.wHour-h)*3600+(systime.wMinute-m)*60+systime.wSecond-s+(systime.w Milliseconds-ms)/1000; 二.Linux下的实验 1、创建进程之前先得到系统时间 struct timeval start; struct timeval end; gettimeofday(&start,NULL); 2、用fork函数创建进程,这时函数会返回两个值,需要通过返回值来判断是子进程还 是父进程。 pc = fork(); if ( pc < 0 ) /* 如果出错*/ { exit(1); } else if ( pc == 0) /* 如果是子进程*/ {……} else /* 如果是父进程*/ {……}

计算机操作系统第三版 第2章 练习题

第2章处理器管理 一、单项选择题 1.采用多道程序设计技术能()。P15 A.减少处理器的空闲时间 B.提供处理器与外围设备的并行工作能力 C.缩短每道作业的执行时间 D.降低单位时间的算题量 2.下列进程状态变化中,()的变化是不可能发生的。P19 A.运行->就绪 B.运行->等待 C.等待->运行 D.等待->就绪 3.一个运行的进程用完了分配给它的时间片后,它的状态应该为()。P19 A.运行 B.等待 C.就绪 D.由用户确定 4.()中断是正在运行的进程所期待的自愿性中断事件。P23 A.程序 B.访管 C.外部

D.输人/输出 5.()进程调度算法最适合分时操作系统采用。P32 A.先来先服务 B.最高优先级 C.时间片轮转 D.随机数 6.进程调度程序负责把()分配给进程。 A.进程控制块 B.主存空间 C.外围设备 D.处理器 三、填空题 1.让多个计算题同时进人一个计算机系统的主存储器并行执行,这种程序设计方法被称为___多道程序设计方法__。P15 2.采用多道程序设计能充分发挥__处理器__与__外围设备__并行工作的能力。P15 3.把一个程序在一个数据集合上的一次执行称为一个_进程_。P17 4.进程有三种基本状态,它们是_就绪__、___运行__和__等待_。P19 5.对每个处理器来说,任何时刻最多只允许一个进程处于____运行___状态。P19

6.一个等待外围设备传输信息的进程在外围设备完成信息传输后其状态应转换成__就绪_____状态。P19 7.每创建一个进程时都要建立一个___PCB____作为进程存在的标识。P21 8.每一个进程都有一个从__创建__到__撤销__的生命周期。P21 9.操作系统往往把一些能完成特定功能的、不可中断的过程称为原语。P21 10.进程队列是把__进程控制块__链接在一起形成的。P21 11.一个进程被创建后应先进人__就绪_____队列,仅当被进程调度选中时才退出该队列而转变成___运行_____ 状态。P21 12.把引起中断的事件称为___中断源____。P23 13.中断事件经常由__硬件的中断装置__发现,而对中断事件的处理则是___中断处理程序____的职责。P23 14.一个正在运行的进程执行了一个条___访管_指令所引起的中断被称为自愿性中断。P23 15.当发生中断事件后要暂停现行进程的运行,而让操作系统中的中断处理程序占用处理器,把这一过程称为___中断响应___。P23 16.中断装置是通过交换__PSW__来实现中断响应的。P24 17.进程调度总是从处于__就绪___状态的进程中去选择一个进程占用处理器。P26 18.进程调度采用___最高优先级____调度算法能保证任何时刻总是让具有最高优先级的进程在处理器上运行。P32

设计一个按优先数调度算法实现处理器调度的程序

#include "stdio.h" #include "malloc.h" #include "string.h" typedefstruct node{ int time; int name; char statement; intnum; struct node *next; }node,*L; void createL(L &l,int n){ l=(L)malloc(sizeof(node)); if(!l) printf("error!"); else l->next=NULL; L p,q; q=l; for(int i=0;iname); getchar(); printf("请输入该进程的运行时间time:\n"); scanf("%d",&p->time); printf("请输入其优先级数num:\n"); scanf("%d",&p->num); getchar(); printf("请输入其状态:\n"); p->statement=getchar(); p->next=q->next; q->next=p; q=p; getchar(); } } void traL(L &l){ L p; p=l->next; printf("进程名\t运行时间\t优先数\t状态\n"); while(p){ printf(" %d\t%5d\t%11d\t %c",p->name,p->time,p->num,p->stat

第二章-操作系统进程(练习题答案)

第二章进程管理 1.操作系统主要是对计算机系统全部 (1) 进行管理,以方便用户、提高计算机使 用效率的一种系统软件。它的主要功能有:处理机管理、存储管理、文件管理、 (2) 管 理和设备管理等。Windows和Unix是最常用的两类操作系统。前者是一个具有图形界面的 窗口式的 (3) 系统软件,后者是一个基本上采用 (4) 语言编制而成的 的系统软件。在 (5) 操作系统控制下,计算机能及时处理由过程控制反馈的信息 并作出响应。 供选答案: (1): A. 应用软件 B. 系统软硬件 C. 资源 D. 设备 (2): A. 数据 B. 作业 C. 中断 D. I/O (3): A. 分时 B. 多任务 C. 多用户 D. 实时 (4): A. PASCAL B. 宏 C. 汇编 D. C (5): A. 网络 B. 分时 C. 批处理 D. 实时 答案:CBBDD 2.操作系统是对计算机资源进行的 (1) 系统软件,是 (2) 的接口。 在处理机管理中,进程是一个重要的概念,它由程序块、 (3) 和数据块三部 分组成,它有3种基本状态,不可能发生的状态转换是 (4) 。 虚拟存储器的作用是允许程序直接访问比内存更大的地址空间,它通常使用 (5) 作为它的一个主要组成部分。 供选答案: (1): A. 输入和输出 B. 键盘操作 C. 管理和控制 D. 汇编和执行 (2): A. 软件和硬件 B. 主机和外设 C. 高级语言和机器语言 D. 用户和计算机 (3): A. 进程控制块 B. 作业控制块 C. 文件控制块 D. 设备控制块 (4): A. 运行态转换为就绪态 B. 就绪态转换为运行态 C. 运行态转换为等待态 D. 等待态转换为运行态 (5): A. 软盘 B. 硬盘 C. CDROM D. 寄存器 答案:CDADB 3.在计算机系统中,允许多个程序同时进入内存并运行,这种方法称为 D。 A. Spodling技术 B. 虚拟存储技术 C. 缓冲技术 D. 多道程序设计技术 4.分时系统追求的目标是 C。 A. 高吞吐率 B. 充分利用内存 C. 快速响应 D. 减少系统开销 5.引入多道程序的目的是 D。

操作系统复习题答案

第1章计算机系统概述 1.1 列出并简要地定义计算机的四个主要组成部分。 主存储器,存储数据和程序;算术逻辑单元,能处理二进制数据;控制单元,解读存储器中的指令并且使他们得到执行;输入/输出设备,由控制单元管理。 1.2 定义处理器寄存器的两种主要类别。 用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。对高级语言而言,由优化编译器负责决定把哪些变量应该分配给主存储器。一些高级语言,如C语言,允许程序言建议编译器把哪些变量保存在寄存器中。 控制和状态寄存器:用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。 1.3 一般而言,一条机器指令能指定的四种不同操作是什么? 处理器-寄存器:数据可以从处理器传送到存储器,或者从存储器传送到处理器。 处理器-I/O:通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输入数据。 数据处理:处理器可以执行很多关于数据的算术操作或逻辑操作。 控制:某些指令可以改变执行顺序。 1.4 什么是中断? 中断:其他模块(I/O,存储器)中断处理器正常处理过程的机制。 1.5 多中断的处理方式是什么? 处理多中断有两种方法。第一种方法是当正在处理一个中断时,禁止再发生中断。第二种方法是定义中断优先级,允许高优先级的中断打断低优先级的中断处理器的运行。 1.6 内存层次的各个元素间的特征是什么? 存储器的三个重要特性是:价格,容量和访问时间。 1.7 什么是高速缓冲存储器? 高速缓冲存储器是比主存小而快的存储器,用以协调主存跟处理器,作为最近储存地址的缓冲区。 1.8 列出并简要地定义I/O操作的三种技术。 可编程I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令(用以执行这个指令);在进一步的动作之前,处理器处于繁忙的等待中,直到该操作已经完成。 中断驱动I/O:当处理器正在执行程序并遇到与I/O相关的指令时,它给相应的I/O模块发布命令,并继续执行后续指令,直到后者完成,它将被I/O模块中断。如果它对于进程等待I/O的完成来说是不必要的,可能是由于后续指令处于相同的进程中。否则,此进程在中断之前将被挂起,其他工作将被执行。 直接存储访问:DMA模块控制主存与I/O模块间的数据交换。处理器向DMA模块发送一个传送数据块的请求,(处理器)只有当整个数据块传送完毕后才会被中断。 1.9 空间局部性和临时局部性间的区别是什么? 空间局部性是指最近被访问的元素的周围的元素在不久的将来可能会被访问。临时局部性(即时间局部性)是指最近被访问的元素在不久的将来可能会被再次访问。 1.10 开发空间局部性和时间局部性的策略是什么? 空间局部性的开发是利用更大的缓冲块并且在存储器控制逻辑中加入预处理机制。时间局部性的开发是利用在高速缓冲存储器中保留最近使用的指令及数据,并且定义缓冲存储的优先级。 第2章操作系统概述 2.1 操作系统设计的三个目标是什么? 方便:操作系统使计算机更易于使用。

相关文档
相关文档 最新文档