操作系统—进程管理
- 格式:doc
- 大小:208.50 KB
- 文档页数:9
一、选择题1.在进程管理中,当时,进程从阻塞状态变为就绪状态。
A.进程被进程调度程序选中B.等待某一事件C.等待的事件发生D.时间片用完2.分配到必要的资源并获得处理机时的进程状态是。
A.就绪状态 B.执行状态 C.阻塞状态 D.撤消状态3.P、V操作是。
A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语4.设系统中有n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是。
A.没有运行进程,有2个就绪进程,n个进程处于等待状态。
B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。
C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。
D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。
5.若P、V操作的信号量S初值为2,当前值为-1,则表示有等待进程。
A. 0个B. 1个C. 2个D. 3个6.进程的三个基本状态在一定条件下可以相互转化,进程由就绪状态变为运行状态的条件是。
A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中7.进程的三个基本状态在一定条件下可以相互转化,进程由运行状态变为阻塞状态的条件是。
A.时间片用完B.等待某事件发生C.等待的某事件已发生D.被进程调度程序选中8.下列的进程状态变化中,变化是不可能发生的。
A.运行→就绪B.就绪→运行C.等待→运行D.等待→就绪9.一个运行的进程用完了分配给它的时间片后,它的状态变为。
A.就绪B.等待C.运行D.由用户自己确定10.用V操作唤醒一个等待进程时,被唤醒进程的状态变为。
A.等待B.就绪C.运行D.完成11.操作系统通过对进程进行管理。
A. JCBB. PCBC. DCTD. CHCT 12.用P、V操作可以解决互斥问题。
A. 一切B. 某些C. 正确D. 错误13.一个进程被唤醒意味着。
A. 该进程重新占有了CPUB. 它的优先权变为最大C. 其PCB移至等待队列队首D. 进程变为就绪状态14.多道程序环境下,操作系统分配资源以为基本单位。
简述操作系统的功能操作系统(Operating System)是计算机系统中最基本的软件之一,它是计算机硬件与应用软件之间的桥梁,是计算机系统的核心,负责管理和控制计算机系统的各种资源,为用户提供一个方便、高效、可靠的工作环境。
操作系统具有以下主要功能。
1.进程管理:操作系统通过进程管理功能,对计算机的进程进行创建、执行、挂起和删除等管理操作。
进程是程序的一次执行过程,包括程序计数器、寄存器和变量等。
操作系统负责调度和控制进程的执行,分配和回收内存资源,并提供进程通信和同步等机制,保证进程之间的协调和并发执行。
2.内存管理:操作系统负责对计算机系统的内存进行管理和分配。
内存是计算机的重要资源之一,操作系统需要确保程序能够正确地加载和执行,并合理地管理内存资源。
操作系统通过内存分配、回收、置换和保护等技术,提高内存的利用率,确保程序的正常运行。
3.文件管理:操作系统使用文件管理功能,对计算机系统中的文件进行创建、读取、写入和删除等操作。
文件是计算机系统中的重要信息载体,操作系统需要为用户提供统一的文件访问接口,并支持文件的组织、存储和保护等功能,保证数据的可靠性和安全性。
4.设备管理:操作系统通过设备管理功能,对计算机系统中的各种硬件设备进行管理和控制。
硬件设备包括输入设备、输出设备和存储设备等,操作系统需要负责设备的分配、调度和控制,实现用户和设备之间的良好交互和数据传输,提高系统的可靠性和效率。
5.用户界面:操作系统提供用户界面,使用户可以方便地与计算机系统进行交互。
用户界面可以是命令行界面(CLI)或图形用户界面(GUI),通过输入指令或鼠标点击等方式,用户可以进行信息输入、程序执行和结果输出等操作。
操作系统需要提供简单、直观、友好的用户界面,提高用户的工作效率和体验。
6.系统安全:操作系统负责保护计算机系统的安全。
操作系统需要实施安全措施,防止病毒和恶意软件的入侵,并限制非法用户的系统访问权限,确保系统的机密性、完整性和可用性。
第三章进程管理习题一. 单选题1. UNIX操作系统的进程控制块中常驻内存的是()。
A.proc结构B.proc结构和核心栈C.ppda区D.proc结构和user结构2. 当()时,进程从执行状态转变为就绪状态。
A.进程被调度程序选中B.时间片到C.等待某一事件D.等待的事件发生3.在进程状态转换时,下列()转换是不可能发生的。
A.就绪态→运行态B.运行态→就绪态C.运行态→阻塞态D.阻塞态→运行态4.下列各项工作步骤中,()不是创建进程所必需的步骤。
A.建立一个PCBB.作业调度程序为进程分配CPUC.为进程分配内存等资源D. 将PCB链入进程就绪队列5.下列关于进程的叙述中,正确的是()。
A.进程通过进程调度程序而获得CPU。
B.优先级是进行进程调度的重要依据,一旦确定不能改变。
C.在单CPU系统中,任一时刻都有1个进程处于运行状态。
D.进程申请CPU得不到满足时,其状态变为等待状态。
6.从资源管理的角度看,进程调度属于()。
A.I/O管理B.文件管理C.处理机管理D.存储器管理7.下列有可能导致一进程从运行变为就绪的事件是()。
A.一次I/O操作结束B.运行进程需作I/O操作C.运行进程结束D.出现了比现运行进程优先权更高的进程8.一个进程释放一种资源将有可能导致一个或几个进程()。
A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪9.一次I/O操作的结束,有可能导致()。
A.一个进程由睡眠变就绪B.几个进程由睡眠变就绪C.一个进程由睡眠变运行D.几个进程由睡眠变运行10.当一个进程从CPU上退下来时,它的状态应变为()。
A.静止就绪B. 活动就绪C. 静止睡眠D. 活动睡眠11.为使进程由活动就绪变为静止就绪,应利用()原语?** B. ACTIVE C. BLOCK D. WAKEUP12.在下面的叙述中,不正确的是()。
A.一个进程可创建一个或多个线程B.一个线程可创建一个或多个线程C.一个线程可创建一个或多个进程D.一个进程可创建一个或多个进程13. 若系统中只有用户级线程,则处理机调度单位是()。
操作系统的功能组成操作系统是计算机系统中最重要的软件之一,它扮演着连接硬件和应用程序的桥梁作用。
操作系统的功能组成包括进程管理、内存管理、文件系统、设备管理和用户接口等方面。
一、进程管理进程是指计算机中正在运行的程序的实例。
操作系统负责对进程进行管理,包括进程的创建、调度、同步和通信等。
进程的创建是指操作系统根据用户或应用程序的请求,创建新的进程,并为其分配资源。
进程的调度是指操作系统根据一定的调度算法,决定哪些进程应该被执行。
进程的同步是指操作系统通过信号量、互斥锁等机制,保证多个进程之间的顺序执行。
进程的通信是指操作系统提供一些机制,使得不同进程之间可以进行数据的交换和共享。
二、内存管理内存管理是操作系统的重要功能之一,它负责管理计算机的内存资源。
操作系统通过虚拟内存技术,将物理内存抽象成逻辑上连续的地址空间,为应用程序提供统一的内存访问接口。
内存管理还包括内存的分配和回收,以及内存的保护和共享等方面。
操作系统通过内存分页、内存分段等技术,实现对内存资源的合理利用和管理。
三、文件系统文件系统是操作系统中负责管理文件和目录的部分。
操作系统通过文件系统提供一种结构化的存储方式,使得用户可以方便地存储和访问文件。
文件系统包括文件的创建、删除、读取和写入等操作,以及文件的权限控制和文件的共享等功能。
操作系统通过文件系统,将物理存储设备抽象成逻辑上的文件和目录,为用户提供方便的文件管理接口。
四、设备管理设备管理是操作系统的另一个重要功能,它负责对计算机的各种硬件设备进行管理和控制。
设备管理包括设备的驱动程序的加载和卸载、设备的初始化和配置、设备的分配和释放等方面。
操作系统通过设备管理,实现对输入输出设备的统一管理,为应用程序提供方便的设备访问接口。
五、用户接口用户接口是操作系统与用户之间的交互界面,它负责接收用户的输入,向用户提供输出。
用户接口包括命令行界面、图形用户界面和网络接口等形式。
操作系统通过用户接口,使得用户能够方便地操作计算机系统,执行各种任务。
第二章进程管理练习题(一)单项选择题1.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器( )。
A.并发执行B.顺序执行 C.并行执行D.同时执行2. 引入多道程序设计技术后,处理器的利用率( )。
A.无改善B.极大地提高 C.降低了D.无变化,仅使程序执行方便3.计算机系统采用多道程序设计技术后,()。
A.缩短了每个程序的执行时间B.系统效率随并行工作道数成比例增长C.提高了系统效率D.使用设备时不会发生冲突4.进程是( )。
A.一个系统软件B.与程序概念等效C.存放在内存中的程序D.执行中的程序5.进程的( )和并发性是两个很重要的属性。
A.动态性B.静态性C.易用性D.顺序性6.已经获得除( )以外所有运行所需资源的进程处于就绪状态。
A.主存储器B.打印机C.C PU D.磁盘空间7.在一个单处理器系统中,处于运行态的进程( )。
A.可以有多个B.不能被打断C.只有一个D.不能请求系统调用8.对于一个单处理器系统来说,允许若干进程同时执行,轮流占用处理器.称它们为()的。
A. 顺序执行B. 同时执行C. 并行执行D. 并发执行9.操作系统根据( )控制和管理进程,它是进程存在的标志。
A.程序状态字B.进程控制块C.中断寄存器D.中断装置10.若干个等待占有CPU并运行的进程按一定次序链接起来的队列为( )。
A.运行队列B.后备队列C.等待队列D.就绪队列11.临界区是指( )。
A. 并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段12.对于记录型信号量,在执行一次P操作时,信号量的值应( )。
A.不变B.加1 C.减1D.减指定数值13.在执行signal操作时,当信号量的值( )时,应释放一个等待该信号量的进程。
A.0 B.<0 C.>=0 D.<=014.wait、signal操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。
操作系统的五大管理功能和四大分类操作系统是计算机系统中的重要组成部分,它是管理计算机硬件和软件资源的核心软件。
操作系统的功能主要包括进程管理、内存管理、文件管理、设备管理和用户界面。
本文将详细介绍操作系统的五大管理功能和四大分类。
一、进程管理进程是计算机中正在运行的程序的实例。
进程管理是操作系统对进程的创建、调度、同步和通信等进行控制和管理的功能。
它主要通过进程调度算法来合理安排进程的执行顺序,确保系统资源的合理分配和高效利用。
1.1 进程创建与撤销进程创建是指操作系统在一个程序运行时,为它分配必要的资源和建立进程控制块。
进程撤销则是指操作系统根据某些条件主动终止一个正在运行的进程。
1.2 进程切换与调度进程切换是指操作系统在多任务环境下,将CPU的执行权从一个进程转移到另一个进程的过程。
进程调度则是指操作系统根据一定的优先级和调度算法,决定将CPU分配给哪个进程来执行。
1.3 进程同步与通信进程同步是指操作系统通过各种机制来协调多个并发执行的进程,防止它们之间的冲突和竞争导致的问题。
进程通信则是指操作系统提供的一种机制,使得进程之间可以传递信息和共享资源。
二、内存管理内存是计算机中用于存储程序和数据的物理设备,内存管理是操作系统对内存空间的分配、回收和保护等进行管理的功能。
它主要通过内存分区、动态分配和页式存储等技术,来提高内存的利用率和访问效率。
2.1 内存分区与地址映射内存分区是将计算机的内存空间划分为若干个逻辑区域,以方便管理不同的程序和数据。
地址映射则是将程序的逻辑地址转换为实际的物理地址,以便于访问内存中的内容。
2.2 虚拟内存与页面置换虚拟内存是指操作系统利用磁盘空间来扩展实际的物理内存,以解决内存不足的问题。
页面置换则是指操作系统根据一定的置换算法,将不常用的内存页面换出到磁盘,以便为其他进程提供更多的内存空间。
三、文件管理文件是计算机中用于存储和组织数据的逻辑单元,文件管理是操作系统对文件的创建、读写、删除和保护等进行管理的功能。
操作系统的功能和特点操作系统(Operating System,简称OS)是计算机系统中的核心软件,它负责管理和控制计算机硬件资源,为用户和应用程序提供一个友好、高效的工作环境。
操作系统具有以下几个主要功能和特点。
一、进程管理功能操作系统通过进程管理功能,实现了对计算机系统中各个进程的调度和控制。
进程是指计算机中正在运行的程序的实例,操作系统负责分配处理器资源,以确保不同程序能够有序地进行执行。
操作系统提供了进程间的通信机制,如管道、消息队列等,以便进程之间能够进行数据的交换和共享。
二、内存管理功能操作系统负责对计算机系统中的内存资源进行管理和调度。
它通过内存管理功能,实现了对内存的分配与回收,以及内存的映射和保护。
操作系统通过虚拟内存技术,将物理内存抽象为逻辑上连续的地址空间,为应用程序提供了更大的内存空间。
三、文件管理功能操作系统通过文件管理功能,提供了对磁盘存储介质上的文件进行组织和管理的能力。
它通过文件系统实现了对文件的存储、检索和更新操作。
操作系统为文件提供了访问权限和保护机制,以保证对文件的安全性和完整性。
四、设备管理功能操作系统负责对计算机系统中的各种设备进行管理和控制。
它通过设备管理功能,实现了对设备的分配与释放,以及对设备的访问和控制。
操作系统提供了设备驱动程序,将设备的复杂性屏蔽,为应用程序提供了统一的设备访问接口。
五、用户界面功能操作系统通过用户界面功能,为用户提供了与计算机系统进行交互的界面。
它可以是命令行界面(如DOS),也可以是图形用户界面(如Windows)。
用户界面使用户能够方便地启动程序、管理文件、进行设置等操作,提高了系统的易用性和可操作性。
操作系统具有以下几个主要特点:一、并发性操作系统能够同时处理多个程序的请求和任务,实现了多道程序的并发执行。
操作系统通过进程调度算法和资源分配策略,使得不同程序能够在统一的硬件平台上共享资源,提高了计算机系统的利用率和效率。
实验3:进程管理 【实验目的】 掌握进程的概念,深入理解进程的含义。认识并理解并发环境中进程执行的实质问题,了解构成并发机制的进程创建过程; 了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控制。掌握在进程执行中对进程进行睡眠、同步、撤消等控制方法; 分析进程竞争资源的现象,学习解决进程互斥的方法。 【实验内容】 1、创建新的进程;查看运行进程;换出某个进程;杀死运行进程。 2、采用写者优先重写P94的读者-写者问题,并通过一个读写序列,将算法与读者优先算法进行比较。 3、P98的53题的上机作业。 【实验原理】
回答以下问题: 1. 简述调用fork创建新进程的过程 Unix系统中,fork属于系统调用,会创建一个与调用相同的副本,在调用了fork之后,这两个进程(父进程和子进程)拥有相同的存储映像,同样的环境字符串和同样的打开文件。通常,子进程接着执行execve或一个类似的系统调用,以修改其存储映像并运行一个新的程序。 2. 简述信号量的作用及使用方法 作用:多进程资源共享时,使用信号量,避免死锁。 使用方法:信号量大于或等于0表示可供并发进程使用的资源实体数;小于0代表正在等待使用临界区的进程数;用于互斥的信号量初始值应该大于0;只能通过P ,V 原语操作而改变。
【实验环境】 硬件环境 单核CPU 软件环境 Ubuntu 【实验过程】
1、创建新的进程:使用fork()函数 查看运行进程&换出某个进程:使用execp换出进程,并且用ls来替换以达到查看进程的效果 1
杀死运行进程:在父进程后使用kill函数 代码:
1.代码如下 #include #include #include #include int main() { int pid1,pid2; printf("the father process:ppid=%d\n",getppid());
pid1=fork(); if(pid1 < 0 ) { printf("fail to create child1 ! ; \n"); return 1; } else if (pid1 == 0 ) { printf("child1 process:pid1=%d\n",getpid()); return ; } int r=kill( pid1, SIGKILL); if( r ) { printf("kill fail\n"); } else { printf("child1(pid=%d) is killed!\n", pid1); } pid2=fork(); if( pid2<0 ) { printf("fail to create child2 \n"); return 1; } else if(pid2==0) 2
{ printf("child2 process:pid2=%d\n",getpid()); return 0 ; } if(execlp("/bin/ls","ls","-al",(char*)NULL) == -1) { printf("execlp error\n"); return 1; } else printf("execlp succeed\n"); return ; } 【实验结果】
运行结果如下:
分析:如图,调用了fork()函数后,程序先创建了子进程,然后调用kill函数杀死进程1,再创建进程2,然后调用execp函数切换当前进程为ls命令,列出当前文件。
2.采用写者优先重写P94的读者-写者问题,并通过一个读写序列,将算法与读者优先算法进行比较。 代码如下: #include "stdio.h" 3
#include #include
#define N_WRITER 2 //写者数目 #define N_READER 10 //读者数目 #define W_SLEEP 10 //控制写频率 #define R_SLEEP 8//控制读频率
pthread_t wid[N_WRITER],rid[N_READER]; const int MAX_RAND = 1000;//产生的最大随机数 int data = 0; int readerCnt = 0, writerCnt = 0; pthread_mutex_t accessReaderCnt = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t accessWriterCnt = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t writeLock = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t readerLock = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t outerLock = PTHREAD_MUTEX_INITIALIZER;
void write() { int rd = rand()%MAX_RAND; printf("write %d\n",rd); data = rd; } void read() { printf("read %d\n",data); } void * writer(void * in) { while(1) { pthread_mutex_lock(&accessWriterCnt); {//临界区,希望修改 writerCnt,独占 writerCnt writerCnt++; if(writerCnt == 1){ //阻止后续的读者加入待读队列 pthread_mutex_lock(&readerLock); } 4
} pthread_mutex_unlock(&accessWriterCnt);
pthread_mutex_lock(&writeLock); {//临界区,限制只有一个写者修改数据 write(); } pthread_mutex_unlock(&writeLock);
pthread_mutex_lock(&accessWriterCnt); {//临界区,希望修改 writerCnt,独占 writerCnt writerCnt--; if(writerCnt == 0){ //阻止后续的读者加入待读队列 pthread_mutex_unlock(&readerLock); } } pthread_mutex_unlock(&accessWriterCnt); sleep(W_SLEEP); } pthread_exit((void *) 0); }
void * reader (void * in) { while(1) { //假如写者锁定了readerLock,那么成千上万的读者被锁在这里 pthread_mutex_lock(&outerLock); {//临界区 pthread_mutex_lock(&readerLock);//只被一个读者占有 {//临界区 pthread_mutex_lock(&accessReaderCnt);//代码段 1 {//临界区 readerCnt++; if(readerCnt == 1){ pthread_mutex_lock(&writeLock); } } pthread_mutex_unlock(&accessReaderCnt); 5
} pthread_mutex_unlock(&readerLock);//释放时,写者将优先获得readerLock } pthread_mutex_unlock(&outerLock);
read(); pthread_mutex_lock(&accessReaderCnt);//代码段2 {//临界区 readerCnt--; if(readerCnt == 0){ pthread_mutex_unlock(&writeLock);//在最后一个并发读者读完这里开始禁止写者执行写操作 } } pthread_mutex_unlock(&accessReaderCnt);
sleep(R_SLEEP); } pthread_exit((void *) 0); }
int main() { int i = 0; for(i = 0; i < N_READER; i++) { pthread_create(&rid[i],NULL,reader,NULL); } for(i = 0; i < N_WRITER; i++) { pthread_create(&wid[i],NULL,writer,NULL); } while(1){ sleep(10); } return 0; } 【实验结果】