文档介绍:第一章绪论操作系统的基本功能答:操作系统的职能是管理和控制计算机系统中的所有硬、软件资源,合理地组织计算机工作流程,并为用户提供一个良好的工作环境和友好的接口。操作系统的基本功能包括:处理机管理、存储管理、设备管理、信息管理(文件系统管理)单元数,初值为0。信号量mutex表示可用有界缓冲区的个数,初值为1。从而有:
Deposit(data):
beginP(avail)P(mutex)送数据入缓冲区某单元V(full)V(mutex)End
Rcmovc(data):
BeginP(full)P(mutex)取缓冲区中某单元数据V(avail)V(mutex)End
由于一个过程中包含多个公用、私用信号量,P、V原语的操作次序要非常小心。由于V原语是释放资源的,所以可以以任意次序出现。但P原语则不行,如果次序混乱,将会造成进程之间的死锁。
解释有名管道(FIFO),(无名)管道(pipe),及两者的区别答:管道是指能够连接一个写进程和一个读进程的并允许它们以生产者-消费者方式进行通信的一个共享文件,又称为pipe文件。
无名管道是一个临时文件,是利用系统调用pipe()建立起来的无名文件,没有路径名,只有调用pipe的进程及其子孙进程才能识别此文件描述符而利用改文件(管道)进行通信;有名管道是利用mknod系统调用建立的,是可以在文件系统中长期存在的,既有路径名的文件,其他进程可以知道其存在,并利用该路径名来访问该文件。
多进程架构,多线程应用实例答:(1)多进程的案例:①Nginx主流的工作模式是多进程模式;②几乎所有的websever服务器服务都有多进程;③Chrome浏览器是多进程方式;④Redis,多进程单线程。(2)多线程的案例:①桌面软件,响应用户输入的是一个线程,后台程序处理是另外的线程;②Memcached用户级线程,系统级线程,及二者区别答:线程的两个基本类型是:用户级线程和系统级线程(核心级线程)。用户级线程的管理过程全部由用户程序完成,操作系统内核只对进程进行管理。核心级线程由操作系统内核进行管理。操作系统内核给应用程序提供相应的系统调用和应用程序接口API,以使用户程序可以创建、执行、撤销进程。
用户级线程有较高的灵活性和高效率,但并发能力较差。核心级线程有较好的并行能力,一个进程内的线程阻塞不会影响该进程内的其他线程,但线程管理的开销过大,缺乏灵活性。
进程和程序的区别答:(1)进程是一个动态概念,而程序是一个静态概念,程序是指令的有序集合,无执行含义,进程则强调执行的
过程。(2)进程具有并行特征(独立性,异步性),程序则没有。(3)不同的进程可以包含同一个程序,同一程序在执行中也可以产生多个进程。
什么是互斥?什么是同步?
答:进程间的互斥是指:一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不许交叉执行的单位执行,即不允许两个以上的共享该资源的并发进程同时进入临界区。
进程间的同步是指:异步环境下的一组并发进程因直接制约互相发送消息而进行互相合作、互相等待,各进程按一定的速度执行的过程。
互斥有哪几种可能的实现方法答:①对临界区加锁实现互斥;②用信号量实现并发进程互斥;③用P,V原语实现进程互斥分析加锁法的原理和存在的问题答:当某个进程进入临界区之后,他将锁上临