操作系统(Operation System,OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
其主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并为用户和应用程序提供了一个简单的接口,便于用户使用。
未配置操作系统的计算机系统
单道批处理系统
多道批处理系统(MultiProgrammed Batch Processing System)
分时系统(Time Sharing System):引入了时间片的概念,一个时间片是一段很短的时间,每个作业每次只能运行一个时间片,然后就暂停并立即调度下一个作业运行
实时系统(Real Time System):指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行
非周期任务的开始截止时间概念:指某任务在某时间以前必须开始执行非周期任务的完成截止时间概念:指某任务在某时间以前必须完成为了使参与并发执行的每个程序(含数据)都能独立地运行,操作系统配置了一个专门的数据结构,称为进程控制块(Process Control Block,PCB)。
系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。由程序段、相关的数据段和PCB三部分便构成了进程实体。
引入PCB后,进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
所以进程只能从阻塞到就绪,执行到阻塞,相反则不行。
临界资源(Critical Resource):一次仅允许一个进程使用的资源,如打印机等。
临界区(Critical Section):每个进程中访问临界资源的代码。
1.关中断
2.利用 Test-and-Set 指令实现互斥
3.利用 Swap 指令实现进程互斥
1.整型信号量
由 Dijkstra 把整型信号量定义为一个用于表示资源数目的整型量 S,它与一般整型量不同,除初始化外,仅能通过两个标准的原子操作(Atomic Operation)wait(S)和 signal(S)来访问。这两个操作被称为 P、V 操作。wait、signal 操作可描述如下:
wait(S){ while(S<=0); /*do no-op*/ S--; } signal(S){ S++; }举个栗子:
桌上有一空盘,最多允许存放一个水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。(提示:设置一个信号量表示可否向盘中放水果,一个信号量表示可否取桔子,一个信号量表示可否取苹果。)
semaphore s=1,orange=0,apple=0; 父亲: p(s); if(放苹果)v(apple); else if(放桔子)v(orange); 儿子: p(orange); v(s); 女儿: p(apple); v(s);2.记录型信号量
3.AND 型信号量
4.信号量集
进程通信是指进程之间的信息交换。由于进程的互斥和同步,比如 P、V 操作,需要在进程间交换一定的信息,但只能是低级进程通信。在进程之间要传送大量数据时,利用 OS 提供的高级通信工具。高级通信机制可归结为四大类:
共享存储器系统(Shared-Memory System)管道(pipe)通信系统:用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,又名 pipe 文件。管道机制提供以下三方面的协调能力 互斥同步确定对方是否存在着消息传递系统(Message passing System):通过格式化的消息(message),将数据封装在其中,并利用操作系统提供的一组通信命令(原语),在进程间进行消息传递,完成进程间的数据交换。 直接通信方式:直接通过OS的发送、接收原语间接通信方式客户机-服务器系统(Client-Server System)传统OS中,进程在每次调度时,都需要进行上下文的切换,开销较大,所以引入了线程的概念。
线程是进程的执行单元,而进程相当于线程的容器。一个进程中可以包含若干个线程,并且至少拥有一个线程。
线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。
特点:
执行的基本单位并发性拥有少量资源独立性系统开销小支持多处理机系统