当前位置:文档之家› Linux操作系统下的多线程编程详细解析

Linux操作系统下的多线程编程详细解析

Linux操作系统下的多线程编程详细解析
Linux操作系统下的多线程编程详细解析

Linux操作系统下的多线程编程详细解析

发表时间:2007-06-07内容来源:站长资讯收集整理作者:佚名线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。

为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。

使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程开销的30倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。

使用多线程的理由之二是线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。当然,数据的共享也带来其他一些问题,有的变量不能同时被两个线程所修改,有的子程序中声明为static的数据更有可能给多线程程序带来灾难性的打击,这些正是编写多线程程序时最需要注意的地方。

除了以上所说的优点外,不和进程比较,多线程程序作为一种多任务、并发的工作方式,当然有以下的优点:

1) 提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,将耗时长的操作(time consuming)置于一个新的线程,可以避免这种尴尬的情况。

例如线程数目过多了;后者表示第二个参数代表的线程属性值非法。创建线程成功后,新创建的线程则运行参数三和参数四确定的函数,原来的线程则继续运行下一行代码。

函数pthread_join用来等待一个线程的结束。函数原型为:

extern int pthread_join __P ((pthread_t __th, void **__thread_return));

第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源被收回。一个线程的结束有两种途径,一种是象我们上面的例子一样,函数结束了,调用它的线程也就结束了;另一种方式是通过函数pthread_exit来实现。它的函数原型为:

extern void pthread_exit __P ((void *__retval)) __attribute__ ((__noreturn__));

唯一的参数是函数的返回代码,只要pthread_join中的第二个参数thread_return不是NULL,这个值将被传递给thread_return。最后要说明的是,一个线程不能被多个线程等待,否则第一个接收到信号的线程成功返回,其余调用pthread_join的线程则返回错误代码ESRCH。

在这一节里,我们编写了一个最简单的线程,并掌握了最常用的三个函数pthread_create,pthread_join和pthread_exit。下面,我们来了解线程的一些常用属性以及如何设置这些属性。

修改线程的属性

在上一节的例子里,我们用pthread_create函数创建了一个线程,在这个线程中,我们使用了默认参数,即将该函数的第二个参数设为NULL。的确,对大多数程序来说,使用默认属性就够了,但我们还是有必要来了解一下线程的有关属性。

属性结构为pthread_attr_t,它同样在头文件/usr/include/pthread.h中定义,喜欢追

根问底的人可以自己去查看。属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。

关于线程的绑定,牵涉到另外一个概念:轻进程(LWP:Light Weight Process)。轻进程可以理解为内核线程,它位于用户层和系统层之间。系统对线程资源的分配、对线程的控制是通过轻进程来实现的,一个轻进程可以控制一个或多个线程。默认状况下,启动多少轻进程、哪些轻进程来控制哪些线程是由系统来控制的,这种状况即称为非绑定的。绑定状况下,则顾名思义,即某个线程固定的"绑"在一个轻进程之上。被绑定的线程具有较高的响应速度,这是因为CPU时间片的调度是面向轻进程的,绑定的线程可以保证在需要的时候它总有一个轻进程可用。通过设置被绑定的轻进程的优先级和调度级可以使得绑定的线程满足诸如实时反应之类的要求。设置线程绑定状态的函数为pthread_attr_setscope,它有两个参数,第一个是指向属性结构的指针,第二个是绑定类型,它有两个取值:PTHREAD_SCOPE_SYSTEM(绑定的)和PTHREAD_SCOPE_PROCESS(非绑定的)。下面的代码即创建了一个绑定的线程。

pthread_create返回。设置一段等待时间,是在多线程编程里常用的方法。但是注意不要使用诸如wait()之类的函数,它们是使整个进程睡眠,并不能解决线程同步的问题。

另外一个可能常用的属性是线程的优先级,它存放在结构sched_param中。用函数pthread_attr_getschedparam和函数pthread_attr_setschedparam进行存放,一般说来,我们总是先取优先级,对取得的值修改后再存放回去。下面即是一段简单的例子。

线程的数据处理

和进程相比,线程的最大优点之一是数据的共享性,各个进程共享父进程处沿袭的数据段,可以方便的获得、修改数据。但这也给多线程编程带来了许多问题。我们必须当心有多个不同的进程访问相同的变量。许多函数是不可重入的,即同时不能运行一个函数的多个拷贝(除非使用不同的数据段)。在函数中声明的静态变量常常带来问题,函数的返回值也会有问题。因为如果返回的是函数内部静态声明的空间的地址,则在一个线程调用该函数得到地址后使用该地址指向的数据时,别的线程可能调用此函数并修改了这一段数据。在进程中共享的变量必须用关键字volatile来定义,这是为了防止编译器在优化时(如gcc中使用-OX参数)改变它们的使用方式。为了保护变量,我们必须使用信号量、互斥等方法来保证我们对变量的正确使用。下面,我们就逐步介绍处理线程数据时的有关知识。

1、线程数据

在单线程的程序里,有两种基本的数据:全局变量和局部变量。但在多线程程序里,还有第三种数据类型:线程数据(TSD: Thread-Specific Data)。它和全局变量很象,在线程内部,各个函数可以象使用全局变量一样调用它,但它对线程外部的其它线程是不可见的。这种数据的必要性是显而易见的。例如我们常见的变量errno,它返回标准的出错信息。它显然不能是一个局部变量,几乎每个函数都应该可以调用它;但它又不能是一个全局变量,否则在A线程里输出的很可能是B线程的出错信息。要实现诸如此类的变量,我们就必须使用线程数据。我们为每个线程数据创建一个键,它和这个键相关联,在各个线程里,都使用这个键来指代线程数据,但在不同的线程里,这个键代表的数据是不同的,在同一个线程里,它代表同样的数据内容。

和线程数据相关的函数主要有4个:创建一个键;为一个键指定线程数据;从一个键读取线程数据;删除键。

创建键的函数原型为:

第一个参数为指向一个键值的指针,第二个参数指明了一个destructor函数,如果这个参数不为空,那么当每个线程结束时,系统将调用这个函数来释放绑定在这个键上的内存块。这个函数常和函数pthread_once ((pthread_once_t*once_control, void (*initroutine) (void)))一起使用,为了让这个键只被创建一次。函数pthread_once声明一个初始化函数,第一次调用pthread_once时它执行这个函数,以后的调用将被它忽略。

在下面的例子中,我们创建一个键,并将它和某个数据相关联。我们要定义一个函数createWindow,这个函数定义一个图形窗口(数据类型为Fl_Window *,这是图形界面开发工具FLTK中的数据类型)。由于各个线程都会调用这个函数,所以我们使用线程数据。

这样,在不同的线程中调用函数createMyWin,都可以得到在线程内部均可见的窗口变量,这个变量通过函数pthread_getspecific得到。在上面的例子中,我们已经使用了函数pthread_setspecific来将线程数据和一个键绑定在一起。这两个函数的原型如下:

这两个函数的参数意义和使用方法是显而易见的。要注意的是,用pthread_setspecific为一个键指定新的线程数据时,必须自己释放原有的线程数据以回收空间。这个过程函数pthread_key_delete用来删除一个键,这个键占用的内存将被释放,但同样要注意的是,它只释放键占用的内存,并不释放该键关联的线程数据所占用的内存资源,而且它也不会触发函数pthread_key_create中定义的destructor函数。线程数据的释放必须在释放键之前完成。

2、互斥锁

互斥锁用来保证一段时间内只有一个线程在执行一段代码。必要性显而易见:假设各个线程向同一个文件顺序写入数据,最后得到的结果一定是灾难性的。

这里声明了互斥锁变量mutex,结构pthread_mutex_t为不公开的数据类型,其中包含一个系统分配的属性对象。函数pthread_mutex_init用来生成一个互斥锁。NULL 参数表明使用默认属性。如果需要声明特定属性的互斥锁,须调用函数pthread_mutexattr_init。函数pthread_mutexattr_setpshared和函数pthread_mutexattr_settype用来设置互斥锁属性。前一个函数设置属性pshared,它有两个取值,PTHREAD_PROCESS_PRIVATE和PTHREAD_PROCESS_SHARED。前者用来不同进程中的线程同步,后者用于同步本进程的不同线程。在上面的例子中,我们使用的是默认属性PTHREAD_PROCESS_ PRIVATE。后者用来设置互斥锁类型,可选的类型有PTHREAD_MUTEX_NORMAL、PTHREAD_MUTEX_ERRORCHECK、PTHREAD_MUTEX_RECURSIVE和PTHREAD _MUTEX_DEFAULT。它们分别定义了不同的上所、解锁机制,一般情况下,选用最后一个默认属性。

pthread_mutex_lock声明开始用互斥锁上锁,此后的代码直至调用pthread_mutex_unlock为止,均被上锁,即同一时间只能被一个线程调用执行。当一个线程执行到pthread_mutex_lock处时,如果该锁此时被另一个线程使用,那此线程被阻塞,即程序将等待到另一个线程释放此互斥锁。在上面的例子中,我们使用了pthread_delay_np函数,让线程睡眠一段时间,就是为了防止一个线程始终占据此函数。

上面的例子非常简单,就不再介绍了,需要提出的是在使用互斥锁的过程中很有可能会出现死锁:两个线程试图同时占用两个资源,并按不同的次序锁定相应的互斥锁,例如两个线程都需要锁定互斥锁1和互斥锁2,a线程先锁定互斥锁1,b线程先锁定互斥锁2,这

时就出现了死锁。此时我们可以使用函数pthread_mutex_trylock,它是函数pthread_mutex_lock的非阻塞版本,当它发现死锁不可避免时,它会返回相应的信息,程序员可以针对死锁做出相应的处理。另外不同的互斥锁类型对死锁的处理不一样,但最主要的还是要程序员自己在程序设计注意这一点。

3、条件变量

前一节中我们讲述了如何使用互斥锁来实现线程间数据的共享和通信,互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条件变量被用来进行线承间的同步。

条件变量的结构为pthread_cond_t,函数pthread_cond_init()被用来初始化一个条件变量。它的原型为:

extern int pthread_cond_init __P ((pthread_cond_t *__cond,__const pthread_condattr_t *__cond_attr));

其中cond是一个指向结构pthread_cond_t的指针,cond_attr是一个指向结构pthread_condattr_t的指针。结构pthread_condattr_t是条件变量的属性结构,和互斥锁一样我们可以用它来设置条件变量是进程内可用还是进程间可用,默认值是PTHREAD_ PROCESS_PRIVATE,即此条件变量被同一进程内的各个线程使用。注意初始化条件变量只有未被使用时才能重新初始化或被释放。释放一个条件变量的函数为pthread_cond_ destroy(pthread_cond_t cond)。

函数pthread_cond_wait()使线程阻塞在一个条件变量上。它的函数原型为:

extern int pthread_cond_wait __P ((pthread_cond_t *__cond,pthread_mutex_t *__mutex));

线程解开mutex指向的锁并被条件变量cond阻塞。线程可以被函数pthread_cond_signal和函数pthread_cond_broadcast唤醒,但是要注意的是,条件变量只是起阻塞和唤醒线程的作用,具体的判断条件还需用户给出,例如一个变量是否为0等等,这一点我们从后面的例子中可以看到。线程被唤醒后,它将重新检查判断条件是否满足,如果还不满足,一般说来线程应该仍阻塞在这里,被等待被下一次唤醒。这个过程一般用while语句实现。

另一个用来阻塞线程的函数是pthread_cond_timedwait(),它的原型为:extern int pthread_cond_timedwait __P ((pthread_cond_t *__cond,pthread_mutex_t *__mutex, __const struct timespec *__abstime));

它比函数pthread_cond_wait()多了一个时间参数,经历abstime段时间后,即使条件变量不满足,阻塞也被解除。

函数pthread_cond_signal()的原型为:

extern int pthread_cond_signal __P ((pthread_cond_t *__cond));

它用来释放被阻塞在条件变量cond上的一个线程。多个线程阻塞在此条件变量上时,哪一个线程被唤醒是由线程的调度策略所决定的。要注意的是,必须用保护条件变量的互斥锁来保护这个函数,否则条件满足信号又可能在测试条件和调用pthread_cond_wait函数之间被发出,从而造成无限制的等待。下面是使用函数pthread_cond_wait()和函数pthread_cond_signal()的一个简单的例子。

count值为0时,decrement函数在pthread_cond_wait处被阻塞,并打开互斥锁count_lock。此时,当调用到函数increment_count时,pthread_cond_signal()函数改变条件变量,告知decrement_count()停止阻塞。读者可以试着让两个线程分别运行这两个函数,看看会出现什么样的结果。

函数pthread_cond_broadcast(pthread_cond_t *cond)用来唤醒所有被阻塞在条件变量cond上的线程。这些线程被唤醒后将再次竞争相应的互斥锁,所以必须小心使用这个函数。

4、信号量

信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。当公共资源增加时,调用函数sem_post()增加信号量。只有当信号量值大于0时,才能使用公共资源,使用后,函数sem_wait()减少信号量。函数sem_trywait()和函数pthread_ mutex_trylock()起同样的作用,它是函数sem_wait()的非阻塞版本。下面我们逐个介绍和信号量有关的一些函数,它们都在头文件/usr/include/semaphore.h中定义。

信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:

extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value));

sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有线程共享;value给出了信号量的初始值。

函数sem_post( sem_t *sem )用来增加信号量的值。当有线程阻塞在这个信号量上时,调用这个函数会使其中的一个线程不在阻塞,选择机制同样是由线程的调度策略决定的。

函数sem_wait( sem_t *sem )被用来阻塞当前线程直到信号量sem的值大于0,解除阻塞后将sem的值减一,表明公共资源经使用后减少。函数sem_trywait ( sem_t *sem )是函数sem_wait()的非阻塞版本,它直接将信号量sem的值减一。

函数sem_destroy(sem_t *sem)用来释放信号量sem。

下面我们来看一个使用信号量的例子。在这个例子中,一共有4个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另两个线程从缓冲区读取数据作不同的处理(加和乘运算)。

在Linux下,我们用命令gcc -lpthread sem.c -o sem生成可执行文件sem。我们事先编辑好数据文件1.dat和2.dat,假设它们的内容分别为1 2 3 4 5 6 7 8 9 10和-1 -2 -3 -4 -5 -6 -7 -8 -9 -10 ,我们运行sem,得到如下的结果:

Multiply:-1*-2=2

Plus:-1+-2=-3

Multiply:9*10=90

Plus:-9+-10=-19

Multiply:-7*-8=56

Plus:-5+-6=-11

Multiply:-3*-4=12

Plus:9+10=19

Plus:7+8=15

Plus:5+6=11

从中我们可以看出各个线程间的竞争关系。而数值并未按我们原先的顺序显示出来这是由于size这个数值被各个线程任意修改的缘故。这也往往是多线程编程要注意的问题。

小结

多线程编程是一个很有意思也很有用的技术,使用多线程技术的网络蚂蚁是目前最常用的下载工具之一,使用多线程技术的grep比单线程的grep要快上几倍,类似的例子还有很多。希望大家能用多线程技术写出高效实用的好程序来。

习题答案-Linux操作系统原理实践教程-崔继-清华大学出版社

第1章 1、在VMwane中安装CentOS 7的基本步骤有哪些? (1)新建虚拟机 (2)虚拟机设置 (3)启动虚拟机 (4)设置安装信息,包括软件选择,安装位置,分区等 (5)完成最后安装 2、安装Linux时可以设置哪些分区?有哪些分区是必须的? 能够设置的分区可以根据安装系统时提示,主要包括:/,/boot,swap,/home,/opt 等等;其中/(根)分区是必须的。 第2章 1、针对Linux 系统启动运行,有哪些运行目标?每个运行目标的含义是什么? CentOS 从7.0 开始使用systemd 代替init 作为系统启动和服务器守护进程的管理器,负责在系统启动或运行时,激活系统资源,管理服务器进程。systemd 用目标(target)替代了运行级别的概念,提供了更大的灵活性,比如可以继承一个已有的目标,并添加其他服务来创建自己的目标。CentOS 7.0 之前的运行级别和systemd 目标之间的对应关系如下表所示。 2、Linux 有几种关机方法,每种关机操作有何异同? 关闭系统的命令有: shutdown(最安全的方式),halt,init,telinit,poweroff,reboot,具体含义可以参考

帮助手册页。 第3章 more、less、cat、wc 命令有什么区别? 这几个命令可用于对文本文件的处理显示,主要区别在:more命令以分页(一次一屏)显示文本信息;less类似于more,但增加了回滚功能;cat本意是连接文件并在标准输出上输出,也就是将文件一次全部输出;wc用于统计输出文件中的行数、单词数、字节数等。 第4章 (1)发出命令显示行号。 底端命令方式下 :set nu (2)保存到文件AboutLinux,并不退出。 底端命令方式下 :w AboutLinux (3)删除一句“It is this kernel that forms the base around which a Linux operating system is developed.”。 在命令方式下,先把光标移到It处,再按d$。(从当前光标处到行末的所有字符删除)(4)查找单词“Finland”。 命令方式下输入/Finland,回车后会在第一个Finland处停下来。 (5)把第一段的“Finland”单词后的内容换行,使其变成三段内容。 插入方式下,将光标移到Finland后,按回车键即可。(vi的换行标志是回车符) (6)将第二段的内容复制到文档的最后。 命令方式下:先用yy命令,然后移到文档最后,再按p键。 (7)删除第三段的内容。 命令方式下,光标移到第三段,用dd命令。(注,这里的段实际上是第3行。) (8)恢复被删除的一段内容。 命令方式下,用u命令。 (9)查找所有的“Minix”单词,并全部改为“MINIX”。 底端命令方式下,:1,$s/Minix/MINIX/g (10)不保存修改,退出vi。 底端命令方式下,:q! (11)使用vi再次打开文件AboutLinux,在第二段后插入“He began his work in 1991 when he released version 0.02 and worked steadily until 1994 when version 1.0 of the Linux Kernel was released.”。 shell命令提示符下输入:vi AboutLinux(打开保存的文件)

2016操作系统原理在线作业

窗体顶端 您的本次作业分数为:100分单选题 1.【第01~04章】以下描述中,()并不是多线程系统的特长。 A 利用线程并行地执行矩阵乘法运算。 B web服务器利用线程请求http服务 C 键盘驱动程序为每一个正在运行的应用配备一个线程,用来响应相应的键盘输入。 D 基于GUI的debugger用不同线程处理用户的输入、计算、跟踪等操作。 正确答案:C 单选题 2.【第01~04章】现代操作系统的基本特征是()、资源共享和异步性。 A 多道程序设计 B 中断处理 C 实现分时与实时处理 D 程序的并发执行 正确答案:D 单选题 3.【第01~04章】操作系统的进程管理模块并不负责()。 A 进程的创建和删除 B 提供进程通信机制 C 实现I/O设备的调度 D 通过共享内存实现进程间调度。 正确答案:C 单选题 4.【第01~04章】下列选择中,()不是操作系统必须要解决的问题。 A 提供保护和安全机制 B 管理目录和文件 C 提供应用程序接口

D 提供C++语言编译器 正确答案:D 单选题 5.【第01~04章】用户在程序中试图读存放在硬盘中某文件的第10逻辑块,使用操作系统提供的接口是()。 A 进程 B 系统调用 C 库函数 D 图形用户接口 正确答案:B 单选题 6.【第01~04章】操作系统的管理部分负责对进程进行调度。 A 主存储器 B 控制器 C 运算器 D 处理机 正确答案:D 单选题 7.【第01~04章】下面关于进程的叙述不正确的是()。 A 进程申请CPU得不到满足时,其状态变为就绪状态。 B 在单CPU系统中,任一时刻有一个进程处于运行状态。 C 优先级是进行进程调度的重要依据,一旦确定不能改变。 D 进程获得处理机而运行是通过调度而实现的。 正确答案:C 单选题 8.【第01~04章】下列选项中,操作系统提供给应用程序的接口是()。 A 系统调用 B 中断 C 库函数

西安交大网络教育秋操作系统原理在线作业习题答案100分

《操作系统原理》习题答案 一、单项选择题 1、(信号量)是一种只能进行P、V操作的特殊变量。 2、一个进程是(PCB结构与程序和数据的组合)。 3、操作系统中,当(时间片完),进程从执行状态转变为就绪状态。 4,设有三个作业J1,J2,J3同时到达,运行时间分别为T1,T2,T3,且T1≤T2 ≤ T3。若它们在一台处理机上按单道运行,采用短作业优先算法,则平均周转时间为(T1+ 2/3T2 + 1/3T3)。 5、在操作系统中,死锁出现是指(若干进程因竞争资源而无限等待其他进程释放已占有的资源) 6.若系统有三个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是( 10 ) 。 7、预防死锁的论述中,(可以通过破坏产生死锁的四个必要条件之一或其中几个的方法,来预防发生死锁)条是正确的论述。 8、关于死锁与不安全状态的关系,下列描述正确的有(死锁是一种不安全状态): 9、银行家算法是一种(死锁避免)算法。 10、以下哪种算法不属于多个分区的可变分区存储管理方式的主存分配算法(最后适应分配算法) 11、在固定分区管理方式中,处理器执行作业时,对每条指令中的地址要求满足(下限地址≤绝对地址≤上限地址) 12、以下叙述中,不正确的是(采用动态和静态重定位的系统都支持“程序浮动”) 13、在页式存储管理中,假定地址用m个二进制位表示,其中页内地址部分占用了n个二进制位,那么最大的作业允许有(2(m-n) )个页面。 14、关于一个分区的存储管理,以下叙述不正确的是(一个分区的存储管理中,必须采用动态重定位的方式进行地址转换) 15、下面哪种算法不属于页式虚拟存储管理中的页面调度算法(优先数调度算法) 16、缺页中断率与哪个因素无关(作业的逻辑地址) 17、很好地解决了“零头”问题的存储管理方法是(页式存储管理) 18、在存储管理中,(可变分区管理)可与覆盖技术配合. 19、虚拟存储器的最大容量(由计算机的地址结构决定) 20、下述(先进先出)页面淘汰算法会产生BELADY现象. 21、计算机系统的二级存储包括(主存储器和辅助存储器) 22、以下关于主存空间的说法中正确的是(操作系统与硬件的接口信息、操作系统的管理信息和程序等存放在主存储器的系统区) 23、联想存储器在计算机系统中是用于(地址变换) 24、以下有关可变分区管理中采用的主存分配算法说法中错误的是(最佳适应算法是最好的算法,但后过的较大作业很难得到满足)

操作系统原理-Linux下的内存分配与回收的管理

广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室2014年11月19日 学院计算机科学与 教育软件学院 年级/专 业/班 姓 名 学号 实验课 程名称 操作系统实验成绩 实验项目名称Linux下的内存分配与回收的管理 指导 老师 张艳玲 一、实验目的 在Linux环境下利用下列系统调用malloc(),free()编写一段程序实现内存分配与回收的管理。 二、实验器材 1、计算机一台。 2、Linux 三、实验内容 1.返回已分配给变量的内存地址; 2.返回释放后的内存地址; 3.释放已分配的内存空间后,返回释放内存后未使用内存的大小。 四、实验步骤、记录和结果 源代码有错,不能正常运行,使用纯C语言,修改正如下。 黄色底色的为新增代码新增注释为绿色底色 #include /* For _MAX_PATH definition */ #include //#include //#include #include //void main() int main() { // int *string; char *string; // string =(int*) malloc(10 ); string = (char*) malloc(sizeof(char)*10); if( string == NULL )

printf( "Insufficient memory available\n" ); else { printf( "Memory space allocated for path name\n" ); /*printf ("string=%d\n",string);*/ // cout<<"string="< #include int main(){ char *string = (char*) malloc(sizeof(char)*10);

南开18秋学期(1703)《操作系统原理》在线作业

(单选题) 1: 当进程执行中需要等待从磁盘上读取数据时,进程的状态将()。 A: 从就绪变为运行态 B: 从运行变为就绪态 C: 从阻塞变为就绪态 D: 从运行变为阻塞态 正确答案: (单选题) 2: 在操作系统分类中对于可靠性和安全性要求较高的是()。 A: 批处理系统 B: 分时处理系统 C: 实时处理系统 D: 个人机操作系统 正确答案: (单选题) 3: 在设备管理中引入I/O缓冲机制是为了缓和()之间的速度不匹配问题。A: 内存与处理器 B: 内存与外设 C: 处理器与外设 正确答案: (单选题) 4: 在页式存储管理中,其虚地址存储空间是() A: 一维的 B: 二维的 C: 三维的 正确答案: (单选题) 5: UNIX文件系统采用( )逻辑结构对文件进行管理。 A: 网状文件 B: 记录式文件 C: 索引文件 D: 3流式文件 正确答案: (单选题) 6: 在文件系统中,使用( )信息实现对文件的管理。 A: 文件存储位置 B: 文件目录 C: 文件内容 正确答案: (单选题) 7: 进程所具有的()及并发性是两个很重要的属性。 A: 动态性 B: 易用性 C: 顺序性 D: 静态性 正确答案: (单选题) 8: 所谓进程调度,其调度的对象和任务分别是( )。 A: 进程,从就绪队列中按一定的调度策略选择一个进程占用CPU B: 数据,将程序中使用的数据调入内存 C: 指令,将指令从外存储空间调入内存 正确答案: (单选题) 9: 计算机系统采用多道并发技术将会() A: 缩短每个程序的执行时间 B: 使系统效率随着并行道数的增加成正比增加 C: 使用设备时不发生冲突 D: 提高了系统的整体执行效率 正确答案: (单选题) 10: 在系统中增加cache可以缓解()之间的速度不匹配性。 A: 硬盘与内存

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. 链接文件

《操作系统原理》考核方式

“面向三类需求的三位一体”的考评方式与标准 一.课程简介与特点 操作系统课程重点讲述操作系统的基本原理和实现技术,是理解计算机系统工作原理、用户界面接口技术、应用系统设计开发方法等基本知识结构的重要途径,其内容涉及理论、算法、技术、实现和应用等方面。 二.课程在培养方案中的目标与任务 通过本课程的学习,使学生认识到操作系统在计算机软硬件资源管理中的地位和作用,掌握操作系统的基本概念、原理和基本方法,掌握操作系统的开发模式、开发方法和操作系统的分析、设计能力,了解操作系统的发展方向,培养学生观察问题、分析问题、解决问题和实际动手能力。通过本课程的学习,从深层次了解操作系统的组成、结构和功能,增强学生大型系统软件的开发能力,并注重专业素养的不断提高,为学生以后参与系统软件分析和开发奠定基础。 三.课程考评方式与标准 1.考评形式 针对操作系统原理课程自身特点与培养目标,制定了“面向三类需求的三位一体”操作系统课程考评形式:面向社会需求、学术需求以及学生个人需求,建立知识、能力和素质一体化考试模式改革。 2.考核内容 三类需求包括社会需求、学术需求和学生需求。社会需求是社会及产业界对学生知识运用、工程实践、团队协作等实际应用能力的需求,强调学生知识能力技术并重;学术需求是高校及高校学者对学生缜密学术思维、学习态度、科学研究能力和知识创新能力的需求,强调学生知识能力系统化;学生需求是学生个体根据自身的兴趣专长和优势潜能,在自身综合发展上对学习知识、提高综合能力和素质等方面的个人需求。 因此,对学生知识、能力与素质的一体化考核即涵盖了以上三类需求中的具体要求。 3.考核内容比重与评分标准 面向三类需求的三位一体考试改革即是面向社会需求、学术需求和学生需求的三类综合需求,采用60%闭卷考试成绩+20%实践环节成绩+10%总结报告学术交流成绩+10%平时考核成绩的综合评定,建立对学生知识、能力和素质的一体化综

浙大远程操作系统原理在线作业及答案

操作系统原理在线作业 1.对磁盘进行移臂调度时,既考虑了减少寻找时间,又不频繁改变动臂的移动方向的调度算法是( C )。 A 先来先服务 B 最短寻找时间优先 C 电梯调度 D 优先级高者优先 2.下列进程调度算法中,综合考虑进程等待时间和执行时间的是( D )。 A 时间片轮转调度算法 B 短进程优先调度算法 C 先来先服务调度算法 D 高响应比优先调度算法 3.I/O系统有三种常用方式来与主机交换数据,它们是程序轮询方式、中断方式和DMA方式,其中DMA方式主要由硬件来实现,此时高速外设和内存之间进行数据交换( B )。 A 不通过CPU的控制,不利用系统总线 B 不通过CPU的控制,利用系统总线 C 通过CPU的控制,不利用系统总线 D 通过CPU的控制,利用系统总线 4. 某进程由于需要从磁盘上读入数据而处于等待状态.当系统完成了所需的读盘操作后,此时该进程的状态将( D )。 A 从就绪变为运行 B 从运行变为就绪 C 从运行变为阻塞 D 从等待变为就绪 5.在段页式存储管理系统中时,每次从主存中取指令或取操作数,至少要访问( C )主存。 A 1次 B 2次 C 3次 D 4次 6.设某进程的页访问串为:1、3、1、2、4,工作集为3块,问:按FIFO页面替换算法,当访问4号页面时,应淘汰( C )号页面。 A 1 B 2 C 3 D 4 7.假设一个正在运行的进程对信号量S进行了P操作后,信号量S的值变为-1,此时该进程将( A )。 A 转为等待状态 B 转为就绪状态 C 继续运行 D 终止 8. 下列选项中,降低进程优先级的合理时机是( A )。 A进程的时间片用完 B进程刚完成I/O,进入就绪队列 C进程长期处于就绪队列中 D进程从就绪态转为运行态9.两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的( A )关系。 A 同步 B 互斥 C 竞争 D 合作 10. 当被阻塞进程所等待的事件出现时,如所需数据到达或者等待的I/O操作已完成,则调用唤醒原语操作,将等待该事件的进程唤醒。请问唤醒被阻塞进程的是( D )。 A 父进程 B 子进程 C 进程本身 D 另外的或与被阻塞进程相关的进程 11.文件系统接到用户给出的“打开”文件的操作命令后,文件系统要完成的工作之一是(C ) A 根据用户提供的参数在文件的目录项中填入文件名等文件属性 B 确定文件的存储结构 C 把存储介质上的文件有关属性(目录)读入内存 D 按照给定的该文件的记录号查找索引表 12.从使用的角度来分析设备的特性,可以把设备分成( D )。 A 物理设备和逻辑设备 B 字符设备和块设备 C 低速设备和高速设备 D 独占设备和共享设备 13.分段系统中信息的逻辑地址到物理地址的变换是通过( A )来实现的。 A 段表 B 页表 C 物理结构 D 重定位寄存器 14.在哲学家进餐问题中,若仅提供5把叉子,则同时要求进餐的人数最多不超过( C )时,一定不会发生死锁。 A 2 B 3 C 4 D 5 15. 下列选项中,导致创建新进程的操作是(C)。I.用户登录成功 II.设备分配 III.启动程序执行 A 仅I和II B 仅II和III C 仅I和III D I、II和III 16.在请求调页系统中有着多种置换算法,选择最先进入内存的页面予以淘汰的算法称为( A )。 A FIFO算法 B OPT算法 C LRU算法 D NRU算法 E LFU算法 17. 并行技术可使系统的各种硬件资源尽量并行工作,这样的程序执行环境具有独立性、随机性和( D )。 A 封闭性 B 多发性 C 顺序性 D 资源共享性 18.当处理机系统中,可并行的是( D )。Ⅰ. 进程与进程Ⅱ. 处理机与设备Ⅲ. 处理机与通道Ⅳ. 设备与设备 A Ⅰ、Ⅱ和Ⅲ B Ⅰ、Ⅱ和Ⅳ C Ⅰ、Ⅲ和Ⅳ D Ⅱ、Ⅲ和Ⅳ 19.总体上说,请求分页是个很好的虚拟内存管理策略。但是,有些程序设计技术并不适合于这种环境。例如:(D )。 A 堆栈 B 线性搜索 C 矢量运算 D 二分法搜索 20.使用银行家算法来避免死锁的操作系统是( D )。 A Windows XP B Linux C FreeBS D UNIX D A、B、C都不是 21. 现代操作系统的基本特征是( D )、资源共享和异步性。

Linux操作系统原理与运用(复习题).doc

《Linux操作系统原理与运用》一、填空题(每题2分) 1、(PCB)操作系统控制进程的唯一数据结构。 2、Linux文件系统中每个文件用(i节点)来标识。 3、安装Linux系统对硬盘分区时,必须有两种分区类型:(文件系统分区)和(交换分区)。 4、编写的Shell程序运行前必须赋予该脚本文件(执行)权限。 5、Linux内核引导时z从文件(/ect/fstab)中读取要加载的文件系统。 6、在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 (_wtest.txt) o 7、检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是fsck-a/dev/had5o & shell不仅是用户命令的解释器,它同时也是一种功能强大的编程语言,bash_> Linux 的缺省shelL 9、一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直到作业运行完毕,可能要经历以下三级调度(低级)、(中级)、(高级)。 10、设有n个进程共享一个临界区,若最多允许m个进程(mvn )同时进入临界区,则所采用的信号量的初值应为仲),信号量值的变化范围为()。 11、一段时间内仅允许一个进程访问的资源称为(临界资源)。 12、分页系统的页长为1KB ,虚拟地址0x3C8F对应的页号为(FH ),页内地址为 (8FH )o 13、在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为(文件系统)。 二选择题 1、没有题目。(A ) A、只有一个 B、可以有多个 C、不能被挂起 D、必须在执行完后才能被撤下2、已经获得除(C )以外的所有运行所需资源的进程处于就绪状态。 A、储存器 B、打印机 C、CPU D、磁盘空间

2019年交大-操作系统原理

2019年春季《操作系统原理》在线作业 一、单选题(共30 道试题,共60 分。)V 1. 从总体上说,多道程序设计技术可()单位时间的算题量。 A. 增加 B. 减少 C. 维持 正确答案:A 满分:2 分 2. 多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器()。 A. 并发执行 B. 顺序执行 C. 并行执行 D. 同时执行 正确答案:A 满分:2 分 3. 通常,文件的逻辑结构中()组织方式,既适合于交互方式应用,也适合于批处理方式应用。 A. 堆文件 B. 流式文件 C. 索引顺序文件 D. 顺序文件 正确答案:C 满分:2 分 4. 下面关于设备属性的论述中,正确的是()。 A. 字符设备的基本特征是可寻址到字节,即能指定输入的源地址或输出的目标地址 B. 共享设备必须是可寻址的和可随机访问的设备 C. 共享设备是指同一时间内允许多个进程同时访问的设备 D. 在分配共享设备和独占设备时都可能引起进程死锁 正确答案:B 满分:2 分 5. 在请求调页系统中有着多种置换算法:选择最先进入内存的页面予以淘汰的算法称为()。 A. FIFO算法 B. OPT算法 C. LRU算法 D. NRU算法 正确答案:A 满分:2 分 6. 下列第()项不是文件系统的功能? A. 文件系统实现对文件的按名存取 B. 负责实现数据的逻辑结构到物理结构的转换 C. 提高磁盘的读写速度 D. 提供对文件的存取方法和对文件的操作 正确答案:C 满分:2 分 7. 为了提高计算机的处理机和外部设备的利用率,把多个程序同时放入主存储器,在宏观上并行运行是()。 A. 分时操作系统 B. 实时操作系统 C. 批处理系统

Linux操作系统原理与应用

操作系统概述 在计算机应用的过程中,人们接触最频繁的是操作系统,例如磁盘操作系统DOS、易于使用的图形界面操作系统Windows、开放源代码的操作系统Linux等。但是,操作系统往往是比较复杂的系统软件,相对于使用而言,要掌握它的运行机制就不是那么容易。 1.1 认识操作系统 可以从不同的角度来认识操作系统。从使用者的角度看,操作系统使得计算机易于使用。从程序员的角度看,操作系统把软件开发人员从与硬件打交道的繁琐事务中解放出来。从设计者的角度看,有了操作系统,就可以方便地对计算机系统中的各种软、硬件资源进行有效的管理。 1.1.1 从使用者角度 人们对操作系统的认识一般是从使用开始的。打开计算机,呈现在眼前的首先是操作系统。如果用户打开的是操作系统字符界面,就可以通过命令行完成需要的操作。例如,要在Linux下复制一个文件,则输入: cp /floppy/TEST mydir/test 上述命令可以把/floppy目录下的TEST文件复制到mydir目录下,并更名为test。 为什么可以这么方便地复制文件?操作系统为此做了什么工作?首先,文件这个概

念是从操作系统中衍生出来的。如果没有文件这个实体,就必须指明数据存放的具体物理位置,即位于哪个柱面、哪个磁道、哪个扇区。其次,数据转移过程是复杂的I/O操作,一般用户无法关注这些具体的细节。最后,这个命令的执行还涉及其他复杂的操作,但是,因为有了操作系统,用户只需要知道文件名,其他繁琐的事务完全由操作系统去处理。 如果用户在图形界面下操作,上述处理就更加容易。实际上,图形界面的本质也是执行各种命令,例如,如果复制一个文件,那么就要调用cp命令,而具体的复制操作最终还是由操作系统去完成。 因此,不管是敲击键盘或者单击鼠标,这些简单的操作在指挥着计算机完成复杂的处理过程。正是操作系统把繁琐留给自己,把简单留给用户。 1.1.2 从程序开发者角度 从程序开发者的角度看,不必关心如何在内存存放变量、数据,如何从外存存取数据,如何把数据在输出设备上显示出来,等等。例如,cp命令的C语言实现片段如下: inf=open("/floppy/TEST",O_RDONLY,0); out=open("/mydir/test",O_WRONLY,0600); do{ l=read(inf,buf,4096); write(outf,buf,l); } while(l); close(outf); close(inf); 在这段程序中,用到四个函数open(),close(),write()和read(),它们都是C语言函数库中的函数。进一步研究可知,这些函数都要涉及I/O操作,因此,它们的实现必须调用操作系统所提供的接口,也就是说,打开文件、关闭文件、读写文件的真正操作是由操作系统完成的。这些操作非常繁琐,对于不同的操作系统其具体实现也可能不同,程序开发者不必关心这些具体操作。 1.1.3 从操作系统在整个计算机系统中所处位置 如果把操作系统放在整个计算机系统中考虑,则如图1.1所示。

2016操作系统原理在线作业

窗体顶端 您的本次作业分数为:100分 1.【第01~04章】以下描述中,()并不是多线程系统的特长。 A 利用线程并行地执行矩阵乘法运算。 B web服务器利用线程请求http服务 C 键盘驱动程序为每一个正在运行的应用配备一个线程,用来响应相应的键盘输入。 D 基于GUI的debugger用不同线程处理用户的输入、计算、跟踪等操作。 正确答案:C 2.【第01~04章】现代操作系统的基本特征是()、资源共享和异步性。 A 多道程序设计 B 中断处理 C 实现分时与实时处理 D 程序的并发执行 正确答案:D 3.【第01~04章】操作系统的进程管理模块并不负责()。 A 进程的创建和删除 B 提供进程通信机制 C 实现I/O设备的调度 D 通过共享内存实现进程间调度。 正确答案:C 4.【第01~04章】下列选择中,()不是操作系统必须要解决的问题。

A 提供保护和安全机制 B 管理目录和文件 C 提供应用程序接口 D 提供C++语言编译器 正确答案:D 5.【第01~04章】用户在程序中试图读存放在硬盘中某文件的第10逻辑块,使用操作系统提供的接口是()。 A 进程 B 系统调用 C 库函数 D 图形用户接口 正确答案:B 6.【第01~04章】操作系统的管理部分负责对进程进行调度。 A 主存储器 B 控制器 C 运算器 D 处理机 正确答案:D 7.【第01~04章】下面关于进程的叙述不正确的是()。 A 进程申请CPU得不到满足时,其状态变为就绪状态。 B 在单CPU系统中,任一时刻有一个进程处于运行状态。 C 优先级是进行进程调度的重要依据,一旦确定不能改变。 D 进程获得处理机而运行是通过调度而实现的。

操作系统原理与Linux系统试验(庞丽萍 郑然) 复习笔记

操作系统原理与Linux系统实验考试范围 第一章 操作系统的发展也历经了初级阶段、操作系统的形成阶段和操作系统的进一步发展这三个阶段。 通道:一种专用的处理部件,它能控制一台或多台外设的工作,负责外设与主存之间的信息传输。 中断:指当主机与接到某种信号(如I/0设备完成信号)时,马上停止原来的工作,转去处理这一事件,当事件处理完毕,主机又回到原来的工作点继续工作。 操作系统的形成标志是:采用多道程序设计技术和分时技术。 多道程序设计技术:主存中同时存放几道相互独立的程序,它们在操作系统的控制之下,相互穿插地运行。 分时技术:把CPU时间划分成很短的时间片,轮流地分配给各个联机作业使用。 什么是操作系统:操作系统是一个大型的程序系统,它负责计算机的软、硬件资源的分配和管理;控制和协调并发活动;提供用户界面,使用户获得良好的工作环境。 操作系统的特性:1、并发(指能处理多个同时性活动的能力);2、共享(多个计算任务对系统资源的共同享用);3、不确定性 并发和共享是一对孪生兄弟,程序的并发执行,必然要求对系统资源的共享,而只有提供系统资源共享的可能才能使程序真正的并发执行。 操作系统的资源管理:处理机管理、存储管理、设备管理和文件系统。 处理机管理:最核心的是问题是CPU的时间分配;功能是:确定进程调度策略;给出进程调度算法和进行处理机的分派。 存储管理:任何程序的执行都必须从主存中获取数据信息。功能:1.存储分配和存储无关; 2.存储保护; 3.存储扩充。 文件系统:软件资源是各种程序和数据的集合,操作系统将这些信息组织成文件,以文件的形势进行管理。 操作系统的基本类型:批量操作系统、分时操作系统、实时操作系统。个人计算机操作系统、网络操作系统和分布式操作系统。 分时操作系统特点:1.并行性 2.独占性 3.交互性 实时操作系统:实时应用的目的是监视、响应或控制外部环境。 实时:计算机对外来信息能够以足够快的速度进行处理,并在被控制对象允许的截止期限内作出快速反应。 现代操作系统大多是多用户、多任务的操作系统,所采用的关键性技术是并行处理技术和虚拟技术。

操作系统原理在线作业

在线作业一(1-2章选择题) 1.操作系统是一种系统软件,它﹎﹎﹎﹎。 A控制程序的执行 B 管理计算机系统的资源 C 方便用户使用计算机 D 管理计算机系统的资源和控制程序的执行 正确答案:D 2.实现不同的作业处理方式(如:批处理、分时处理、实时处理等),主要是基于操作系统对管理采用了不同的策略。 A处理机 B 存储器 C 设备 D 文件 正确答案:A 3.多道程序设计系统中,让多个计算问题同时装入计算机系统的主存储器﹎﹎﹎。 A并发执行 B 顺序执行 C 并行执行 D 同时执行 正确答案:A 4.有一类操作系统的系统响应时间的重要性超过系统资源的利用率,它被广泛地应用于卫星控制、导弹发射、飞机飞行控制、飞机订票业务等领域是﹎﹎﹎﹎。 A分时操作系统 B 实时操作系统 C 批处理系统 D 网络操作系统 正确答案:B 5.分时系统中,当用户数目为100时,为保证响应不超过2秒;此时的时间片最大应为﹎﹎﹎﹎。 A 10ms B 20ms C 50ms D 100ms E 200ms 正确答案:B 6.在设计批处理系统时,首先要考虑的是﹎﹎﹎。 A灵活性和可适应性 B 交互性和响应时间 C 周转时间和系统吞吐量 D 实时性和可靠性 正确答案:C 7.在设计分时操作系统时,首先要考虑的是﹎﹎﹎。 A灵活性和可适应性 B 交互性和响应时间 C 周转时间和系统吞吐量 D 实时性和可靠性 正确答案:B 8.批处理系统的主要缺点是﹎﹎﹎﹎。 A CPU的利用率不高 B 失去了交互性 C 不具备并行性

D 以上都不是 正确答案:B 9.实时操作系统对可靠性和安全性要求极高,它﹎﹎﹎。 A十分注重系统资源的利用率 B 不强调响应速度 C 不强求系统资源的利用率 D 不必向用户反馈信息 正确答案:C 10.分时系统的响应时间(及时性)主要是根据﹎﹎﹎确定的。 A时间片大小 B 用户数目 C 用户数目 D 用户所能接受的等待时间 E 控制对象所能接受的时延 正确答案:D 11.从静态角度看,进程由程序、数据和﹎﹎﹎﹎三部分组成。 A JCB B DCB C PCB D PMT 正确答案:C 12.在一单处理机系统中,若有5个用户进程,在非管态的某一时刻,处于阻塞态的用户进程最多有﹎﹎﹎个。 A 1 B 2 C 3 D 4 E 5 F 0 正确答案:E 13.操作系统中,进程与程序的重要区别之一是﹎﹎﹎。 A程序有状态而进程没有 B 进程有状态而程序没有 C 程序可占有资源而进程不可 D 进程能占有资源而程序不能 正确答案:B 14.用户可通过系统调用建立和撤消进程,通常用户进程被建立后,﹎﹎﹎﹎。 A便一直存在于系统中,直到被操作人员撤消 B 随着作业运行正常或不正常结束而撤消 C 随着时间片轮转而撤消与建立 D 随着进程的阻塞或唤醒而撤消与建立 正确答案:B 15.进程从运行态进入阻塞态可能是由于﹎﹎﹎﹎。 A现运行进程运行结束 B 现运行进程执行了P操作 C 现运行进程执行了V操作 D 现运行进程时间片用完 正确答案:B 16.一个进程释放一种资源将有可能导致一个或几个进程﹎﹎﹎。 A由就绪变运行 B 由运行变就绪 C 由阻塞变运行

16秋华师《操作系统原理》在线作业

奥鹏17春16秋华师《操作系统原理》在线作业 一、单选题(共25 道试题,共100 分。) 1. 下列关于缓冲池的说法中,错误的是 A. 缓冲池由多个缓冲区组成 B. 对缓冲池的管理是通过对每一个缓冲器的缓冲尾部进行操作实现的 C. 系统把各种缓冲区按其使用状况连成3种队列 D. 对缓冲池的管理由4个操作组成 正确答案: 2. 用于产生可执行文件的作业步是 A. 编辑 B. 编译 C. 连接 D. 运行 正确答案: 3. 中断屏蔽是通过每一类中断源设置一个中断屏蔽触发器来屏蔽它们的()而实现的。 A. 中断源 B. 中断请求 C. 中断响应 D. 中断屏蔽 正确答案: 4. 在OS中,进程是一个具有独立功能的程序在某个数据集上的一次 A. 执行 B. 操作 C. 中断 D. 调度 正确答案: 5. 在图形用户接口中,用于查看和操纵应用程序或文档的是 A. 窗口 B. 对话框 C. 图标 D. 菜单 正确答案: 6. 现代小型操作系统一般都按照()来组合各个功能模块。 A. 整体结构 B. 层次结构 C. 树型结构 D. 网状结构

正确答案: 7. 对记录进行批量存取时,所有逻辑文件中,存取效率最高的是 A. 流式文件 B. 顺序文件 C. 索引文件 D. 索引顺序文件 正确答案: 8. 在文件系统中,用户通过()来访问文件。 A. 文件类型 B. 文件结构 C. 文件名 D. 文件属性 正确答案: 9. 在UNIX中,文件系统的目录结构采用的是 A. 线型结构 B. 二维结构 C. 树型层次结构 D. 网状结构 正确答案: 10. 分时操作系统通常采用()算法为用户服务。 A. 时间片轮转 B. 最短作业优先 C. 先来先服务 D. 优先数调度 正确答案: 11. 为了使多个进程能有效地同时处理输入输出,最好使用()结构的缓冲技术。 A. 单缓冲 B. 双缓冲 C. 环型缓冲 D. 缓冲池 正确答案: 12. 在计算机系统的四大资源中,最关键的是 A. 中央处理机(CPU) B. 存储器 C. 输入/输出设备 D. 文件系统 正确答案: 13. 某系统有4个进程,每个进程最多需要2个同类资源,则该系统不会发生死锁的最少资源数是 A. 4 B. 5 C. 6 D. 7 正确答案:

《操作系统原理》教学大纲

《操作系统原理》教学大纲 课程编号: CE3201 课程名称:操作系统英文名称:Operating System 学分/学时:3/48 课程性质:选修 适用专业:网络工程建议开设学期: 5 先修课程:计算机导论与C语言、程序设计、数据结构与算法分析 开课单位:网络与信息安全学院 一、课程的教学目标与任务 操作系统是网络工程专业的一门选修课,是大学学生的必修课程。因为,在知识经济蓬 勃发展的今天,软件产业占据着核心地位,而操作系统是所有软件的基础,是软件的根本, 是计算机系统中的核心系统软件,专门控制和管理计算机系统中的各种软硬件资源,提供了 用户与计算机之间的接口,其性能直接影响到计算机系统的工作效率,所以操作系统是计算 机领域中最活跃的学科之一,其发展极为迅速。 通过本课程的学习,使学生能够系统地掌握操作系统基本概念、主要功能、工作原理和 实现技术;具有使用操作系统和分析操作系统的能力。通过实践,理解和掌握Unix、Windows 操作系统基本工作原理及使用方法,为以后在操作系统平台上开发各种应用软件或系统软件 打下坚实的基础。 二、课程具体内容及基本要求 (一)操作系统概论(2学时) 主要内容: (1)操作系统的目标作用和模型 (2)操作系统的发展过程 (3)现代操作系统的类型 (4)操作系统的特征和服务 1.基本要求 了解操作系统的基本概念、操作系统发展历史,操作系统应具备的功能,掌握多道批处

理系统、实时系统和分时系统的工作原理,实时和分时系统的区别,UNIX操作系统基本结构。 2.重点与难点 重点:操作系统的作用、现代操作系统的类型、操作系统的特征 难点:操作系统的作用和特征 (二)进程管理和用户接口(4学时) 主要内容: (1)进程的描述与控制 (2)进程的调度 (3)线程 (4)联机命令控制和脱机控制 (5)程序接口 1.基本要求: 理解为什么操作系统是用户和计算机之间的接口。进程是资源分配和独立运行的基本单位。用研究操作系统的进程观点来看,是研究系统中诸进程之间的并发特性以及进程之间的相互制约性。特别是随着操作系统的发展,又引入了线程这一新的概念。本部分重点是要求学生掌握进程、线程的基本概念;进程、线程的区别;进程、程序的区别。 2.重点与难点 重点:进程定义、进程的调度和线程定义 难点:为什么引进进程、进程调度算法 (三)进程间的通信(6学时+8学时) 主要内容: (1)进程的同步与互斥 (2)信号量和PV操作 (3)进程间的通信 (4)死锁 1.基本要求: 进程间如何通信是操作系统中的一个非常重要的内容,通过学习应当重点掌握如何解决

2016-操作系统原理 在线作业

您的本次作业分数为:99分单选题 1.【第01~04章】下列选项中,操作系统提供给应用程序的接口是()。 A 系统调用 B 中断 C 库函数 D 原语 正确答案:A 单选题 2.【第01~04章】下面的叙述中正确的是()。 A 操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同 B 为了避免发生进程死锁,各个进程只能逐个申请资源 C 操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息 D 进程同步是指某些进程之间在逻辑上的相互制约关系 正确答案:D 单选题 3.【第01~04章】实时操作系统对可靠性和安全性的要求极高,它()。 A 十分注意系统资源的利用率 B 不强调响应速度 C 不强求系统资源的利用率 D 不必向用户反馈信息 正确答案:C 单选题 4.【第01~04章】在操作系统中引入“进程”概念的主要目的是()。 A 改善用户编程环境 B 提高程序的运行速度 C 描述程序动态执行过程的性质 D 使程序与计算过程一一对应

单选题 5.【第01~04章】操作系统的基本功能是()。 A 提供功能强大的网络管理工具 B 提供用户界面,方便用户使用 C 提供方便的可视化编辑程序 D 控制和管理系统内各种资源,有效地组织多道程序的运行 正确答案:D 单选题 6.【第01~04章】操作系统的管理部分负责对进程进行调度。 A 主存储器 B 控制器 C 运算器 D 处理机 正确答案:D 单选题 7.【第01~04章】下列选项中,降低进程优先级的合理时机是()。 A 进程的时间片用完 B 进程刚完成I/O,进入就绪队列 C 进程长期处于就绪队列中 D 进程从就绪态转为运行态 正确答案:A 单选题 8.【第01~04章】现代操作系统的基本特征是()、资源共享和异步性。 A 多道程序设计 B 中断处理 C 实现分时与实时处理 D 程序的并发执行

相关主题
文本预览
相关文档 最新文档