并发和并行:
并发特征是操作系统最重要的特征,并行性和并发性是即相似又有区别的概念,并行是指两个或者多个事件在同一时刻发生,而并发是指在同一时间间隔内发生,强调一段时间宏观上有多个程序在同时运行,微观上其实知识分时的交替执行。
并行:
time
task1————————————————————
task2————————————————————
并发:
time
task1— — — — — — — — — —
task2 — — — — — — — — — —
进程和线程
进程:旨在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据、堆和栈等组成的,是一个能独立运行的活动实体。在操作系统中引入进程的目的,就是为了使多个程序能并发执行。
线程:一个进程可以包含多个线程,它们可以利用进程拥有的资源,线程作为独立运行和独立调度的基本单位,因为基本上不拥有系统资源,对它的调度所付出的开销会很小多,更高效的提高系统内多个程序间并发执行的程度。
共享性:
指的是系统中的资源可内存中多个并发执行的进程(线程)共同使用,把这种公司使用称为资源共享、或资源复用。主要的共享方式有以下两种:
互斥共享方式:可以共享,但是一段时间内只允许一个进程或线程访问,称为临界资源或独占资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
同时访问方式:
一段时间内可由多个进程“同时”对它们进行访问,典型的就是磁盘设备。
虚拟技术(时分复用技术和空分复用技术):
通过某种技术把一个物理实体变换多个逻辑上的对应物,物理实体是实际存在的,后者是虚的,仅仅是用户感觉上的东西。
多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换,就把一台物理上的处理机虚拟为多台逻辑上的处理机,每个终端用户感觉有一个处理机在为他服务。
虚拟内存使用了空分复用技术,提高存储空间的利用率,例如将磁盘空间划分为1,2,3,4个卷,用户可以针对性的访问某个卷的内容。它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。
N个逻辑设备采用时分复用,那么平均速度肯定等于或低于物理设备的1/N,同理,采用空分复用技术,平均占用空间也必然等于或低于物理设备的1/N.
异步性:
由于资源的限制,进程的执行通常不是一气呵成,而是走走停停的方式完成的,因为进程何时获得处理机,进程又因提出某种资源而被停止都是不可知的,所以进程是以人们不可预知的速度向前推进,这个就叫进程的异步性。
操作系统应具备:处理机管理、存储器管理、设备管理、文件管理功能。
处理机管理:1、进程控制、2、进程同步、3、进程通信、4、调度。
1、为作业的完成和作业结束之后创建和撤销进线程,控制进程在运行过程中的状态转换。
2、为多个进程的运行进行协调,有两种协调方式:进程互斥方式:对临界资源进行访问,应采用互斥方式。进程同步方式:在相互合作完成共同任务的各个线程或进程之间,由同步机构对它们的执行持续加以协调。最简单的进程同步机制是用来实现进程互斥的,为每一个临界资源配置一把锁,当锁打开可以访问,当锁关闭进行访问。综上,它的作用是对多个相关进程在执行持续上进行协调,以便它们之间能够有效地共享资源和互相工作,从而使程序的执行具有可再现性。
3、当互相合作的它们处于同一计算机系统时,通常采用直接通信方式,由源进程利用发送命令将消息挂到目标进程的消息队列上,由目标进程利用接受命令从其消息队列中取出消息。
4、包括作业调度和进程调度:前者是从后备队列中按照一定的算法,选择出若干个任务,为他们分配运行所需资源,首先分配内存,在分别为它们建立进程,使他们成为可能获得处理机的就绪状态,然后按照一定的算法将它们插入就绪队列。后者是指从进程的就绪队列中,按照一定算法选出一个进程(线程),把处理机分配给它,使其运行。
存储器管理:内存分配、内存保护、地址映射、内存扩充。
静态分配内存空间在作业装入时就确定了,后续不许再申请新空间。动态分配可以继续申请新的附加空间。
确保用户程序只在自己的内存空间运行,一般设置内存保护机制,设置上下两个界限寄存器用来存放执行程序的上下界。
因为地址都是从0开始的,但是多进程环境下,不可能这样,所以需要将地址空间中的逻辑地址转换成内存空间中与之对应的物理地址。
虚拟扩充,从逻辑上扩充,利用请求掉入功能、置换功能。
设备管理:缓冲管理、设备分配、设备处理,完成用户提出的io请求、分配所需的io设备、提高cpu和io设备的利用率、提高io速度。
文件管理:文件存储空间管理、目录管理、文件读写管理和保护,对用户和系统文件进行管理,方便使用并且保证安全性。