进程的基本概念为了提高计算机系统中各种资源的利用率,现代操作系统广泛采用多道程序技术(multi-programming),使多个程序同时在系统中存在并运行。描述进程的数据结构——进程控制块(PCB)一个进程应该包括:程序的代码;程序的数据;PC中的值,用来指示下一条将运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)程序是文本,是语句的描述(静态)进程是运行中的程序,含有上下文信息(动态)结构特征:程序段、相关的数据段、PCB构成了进程实体动态性:进程是进程实体的一次执行,进程的状态总是在变化,PCB的内容总是在变化并发性:多个进程实体,同存于内存中,能在一段时间内同时运行(宏观上)独立性:独立运行和资源调度的基本单位。每个进程都有“自己”的PC和内部状态,运行时独立于其他的进程(逻辑PC和物理PC)异步性:以各自独立的、不可预知的速度向前推进
进程的控制Running运行 Blocked阻塞 Ready就绪进程的三种基本状态1) 就绪(Ready)状态:进程一旦获得CPU就可以投入运行的状态2) 执行状态:进程获得CPU正在运行的状态3) 阻塞状态:进程由于等待资源或某个事件的发生而暂停执行的状态运行à阻塞等待I/O的结果等待某一进程提供输入运行à就绪运行进程用完了时间片运行进程被中断,因为一高优先级进程处于就绪状态就绪 à 运行调度程序选择一个新的进程运行阻塞 à就绪当所等待的事件发生时
进程同步两个进程使用相同的一个共享一个资源(如共享文件,打印机等)引出进程同步问题。进程在运行过程中所做的工作分为两类:内部计算(不会导致竞争条件)对共享内存或共享文件的访问(可能导致竞争条件)我们把完成第二类工作的程序称为“临界区”,把需要互斥访问的共享资源称为“临界资源”。如果我们能设计出某种方法,使得任何两个进程都不会同时出现在临界区中,就可以避免竞争条件的出现。由Dijkstra把整型信号量定义为一个整型量,除初始化外,仅能通过两个标准的原子操作(Atomic Operation) wait(S)和signal(S)来访问。这两个操作一直被分别称为P、V操作。wait(S): while S≤0 do no-op S:=S-1;signal(S): S:=S+1;
经典的进程同步互斥问题4.1有3个客户在某天的日常生活中使用了某个 ATM 自动取款机。假设他们对 ATM 的使用顺序是 a 到来,a 进入, b 到来, c 到来, a 离开,b 进入, b 离开, c 进入, c 离开。4.2某阅览室,最多可容纳100名读者同时阅览,当阅览室中少于100名读者时,阅览室外等候的读者可以立即进入,否则需要在外面等待。每个读者可看成一个进程。semaphore seats;seats.value=100;while(阅览时间){wait(seats);进入阅览室;阅读;离开阅览室;signal(seats);}4.3司机与售票员while(上班时间){发动汽车;正常运行;到站停车;}while(上班时间){关闭车门;售票;打开车门;}4.4两个并发进程的读写设有一个缓冲区buffer,大小为一个字节(如图)。Compute进程不断产生字符,送buffer,Print进程从buffer中取出字符打印。如不加控制,会出现多种打印结果,这取决于这两个进程运行的相对速度。在这众多的打印结果中,只有Compute和Print进程的运行刚好匹配的一种是正确的,其它均为错误。semaphore S_Empty; // 缓冲区是否为空,初值为1semaphore S_Full; // 是否有数据写入,初值为0while(计算未完成){ P(S_Empty);Write_Data( );V(S_Full);}Computewhile(打印未完成){P(S_Full); Print_Data( ); V(S_Empty);}Print4.5有一个仓库,可以存放A和B 两种产品。要求:1)每次只能存入一种产品(A或B);2)-N
进程通信低级通信:只能传递状态和整数值(控制信息),包括用来实现进程同步和互斥的信号量和管程机制。优点是速度快。缺点是:传送信息量小:每次通信传递的信息量固定,若需要传递较多信息,就得进行多次通信。编程复杂:用户需要直接去实现通信的细节,编程复杂,容易出错。高级通信:能够传送任意数量的数据,包括三类:共享内存、管道、消息。
线程定义及实现进程当中的一条执行流程叫线程。进程是资源分配单位,线程是CPU调度单位;进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈;线程同样具有就绪、阻塞和执行三种基本状态,同样具有状态之间的转换关系;线程 = 轻量级进程(lightweight process)用户线程:在用户空间实现,时间片分配给进程;内核线程:在内核中实现,时间片分配给线程;
考驾照网【kaojiazhao.COM】