操作系统学习2

来源:互联网 发布:安装ubuntu双系统黑屏 编辑:程序博客网 时间:2024/06/06 07:04

                                                     进程

1.      前趋图和程序执行

1>    程序执行是有一定的先后顺序的,如Pi—>Pj指的是Pi必须在PJ开始执行前完成

2>    当程序没有写后读、读后写、和写后写的冲突,则可以并行执行(系统结构中的流水线),这样可以提高系统的吞吐量和资源利用率

2.      进程

1>    是系统进行资源分配和调度的一个独立单位

2>    有并发性,动态性,独立性,异步性四个特征

3>    三种状态:就绪:已经获得处处理机的所有资源,一旦获得处理机就立即执行,放在就绪队列里

          执行:已经获得处理机的正在执行的状态

          阻塞:正在执行的进程由于某件事暂停的状态,放在阻塞队列

4>    后来加的两种状态:创建态:首先申请一个PCB,填写进程管理和控制的信息,在分配系统运行时所需的所有资源

                  终止状态:首先等待操作系统进行善后处理,最后释放PCB,将空间返还给系统

5>    进程的重要操作:挂起操作:将正在进程暂停,讲就绪的进程暂时不接受调度

                激活操作:静止状态改为活动状态

3.      操作系统里的数据结构

1>    目的:为了方便操作系统进行查找设置了资源或者进程的描述、标识、状态、等信息和一批指针

2>    OS管理这些资源的数据结构一般分为四类:内存表、文件表、设备表、用于进程管理的进程表

4.      PCB

1>    记录操作系统所需的,用于描述进程的当前状况以及管理进程运行的全部信息

2>    PCB作为独立运行的基本单位标志(其实TCB也是,只是TCB是在PCB里)

3>    能实现间断运行方式、提供进程管理和调度所需要的信息、也能实现进程的同步和通信

4>    PCB中的信息:进程标识符、处理机状态、进程调度信息、进程控制信息

5>    PCB的组织方式:线性:系统所有PCB都放在一张线性表中,在内存中一个特殊的位置

                链接:把所有具有相同状态的PCB链接成一个队列,如就绪队列、阻塞队列、和空白队列

                索引:根据进程的不同状态,建立不同的索引表,如就绪索引表、阻塞索引表

5.      进程控制

1>    操作系统内核:现代的内核都是层次性的,能实现中断处理,原语操作,时钟管理的功能,同时还能管理文件、存储器、设备、处理机等各种系统资源,进程管理就是操作系统内核的事

2>    内核允许一个进程创建另一个进程:创建者是父进程,被创建者是字进程

3>    创建进程的四个步骤:申请空白PCB、为进程分配所需的各种资源、初始化PCB、插入就绪队列

4>    进程终止原因:正常终止:进程执行完毕,异常终止:运行时发生异常,如越界、非法指令、运算错、I/O故障等,外界干预:如操作员和操作系统要解除死锁、父进程请求终止,或父进程终止(父进程一旦终止,他的所有子进程都会终止)

6.      进程的阻塞与唤醒

1>    原因:请求共享资源失败、等待某种操作完成、新数据为到达、等新任务到达

2>    阻塞过程:先暂停进程,再把PCB插入阻塞队列,这时是活动阻塞

3>    挂起和激活:挂起的进程不会接受调度,由活动态改为静止态,把进程从相应的队列删除

7.      进程同步

1>    同步涉及了临街资源和共享资源的分配,两个进程如果没有相同的资源分配问题,单处理机的环境下,可以并发执行,如果有,操作系统则提拱了相应的机制来解决共享资源和临界资源的分配

2>    进程之间存在间接地制约关系和直接制约的关系:间接是使用了共享资源,直接是进程要向另一个进程提供数据

3>    实现公布的机制:互斥、信号量机制、AND型信号量机制、信号量级、管城机制

8.      进程同步

1>    通信类型:共享存储器系统、管道系统、消息传递系统、客户机-服务器系统。

2>    共享存储器系统:把要传递的信息写进内存中的某一块,允许具有权限的进程通信

3>    管道通信:两个进程之间有一个通信文件,称pipe文件,一个进程可以读,一个进程可以写

4>    消息传递系统:将通信的数据封装在消息中,不借助共享存储区或数据结构(在网络中交做报文)直接由一个进程传入另一个进程。

5>    客户机-服务器系统:分为套接字、远程过程调用、和远程方法调用

套接字:一个通信标识的数据结构,包含了通信目的的地址,通信使用的端口号、通信网络的传输协议、进程所在的网络地址、以及针对客户端货服务程序提供不同系统调用的API,分为基于文件型的套接字和基于网络型的套接字

远程过程调用:RPC,是一个通信协议,允许一台主机的进程调用另一台主机的进程,如果是面向对象的编程,则称为远程方法调用

9.      线程的基本概念

1>    由来:由于进程是一个可以拥有资源的独立单位,又是一个可独立和分派和调度的基本单位,后来对称的多处理机的系统出现了,又把线程作为独立调度和分派的单位

2>    线程是调度的基本单位,具有并发型:允许进程中的多个线程并发执行,可以拥有独立的资源(拥有TCB,程序计数器),独立性:这一方面,线程的独立性小,进程里的线程可以共享进程里的资源、系统开销:线程的创建和终止不需要内核的参与,因此膝疼痛开销小,同时多线程还支持多处理机系统

3>    线程也有三个状态:执行,就绪,阻塞。在多线程编程中,进程已经不是可执行的实体

4>    线程有不同的实现方式:有内核支持线程:一般在多处理级的系统中,多线程可以并发执行,内核有支持线程的很小的数据结构,切换起来很快。和用户级线程(执行过程中不需要内核的参与):这种方式减少了系统的开销,而且用户的实现与OS平台无关,当然还有两种方式的组合方式:这样适应了多方面的需求。

0 0
原创粉丝点击