操作系统知识点总结(2)

二.进程和线程

3.进程的状态与转换

  进程的三种基本状态:就绪(Ready)状态,执行(Running)状态,阻塞(Block)状态  (引入的两种常见的状态:创建状态,终止状态)

         

    运行状态:进程正在处理机上运行。在单处理机环境下,每一时刻最多只有一个进程处于运行状态。

    就绪状态:进程已处于准备运行的状态,即进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。

    阻塞状态,又称等待状态:进程正在等待某一事件而暂停运行,如等待某资源为可用(不包括处理机)或等待输入/输出完成。即使处理机空闲,该进程也不能运行。

4.进程同步的几种机制

  同步机制需要遵循的原则

      1.空闲让进,2.忙则等待,3.有限等待,4.让权等待

        (1)空闲让进;

        (2)忙则等待(保证对临界区的互斥访问);

        (3)有限等待(有限代表有限的时间,避免死等);

        (4)让权等待,(当进程不能进入自己的临界区时,应该释放处理机,以免陷入忙等状态)。

  经典的进程同步问题:生产者-消费者问题;哲学家进餐问题;读者-写者问题

  进程同步的机制:硬件同步机制、信号量机制、管程机制

  硬件同步机制:关中断

         利用Test-and-Set指令实现互斥(Test-and-Set TS指令:”测试并建立“)

         利用Swap指令实现进程互斥(该指令称为对换指令,用于交换两个字的内容)

  说明:

      互斥量:用来处理一个共享资源的同步访问问题,当有多个共享资源时,就需要用到信号量机制。
           信号量(Semaphores)机制:用于保证两个或多个共享资源被线程协调地同步使用,信号量的值对应当前可用资源的数量。

1.信号量(samaphore):

  信号量机制通过信号量的值控制可用资源的数量。线程访问共享资源前,需要申请获取一个信号量,如果信号量为0,说明当前无可用的资源,线程无法获取信号量,则该线程会等待

    其他资源释放信号量(信号量加1)。如果信号量不为0,说明当前有可用的资源,此时线程占用一个资源,对应信号量减1。
        举例:
          停车场有5个停车位,汽车可使用停车位。在这里5个停车位是共享的资源,汽车是线程。开始信号量为5,表明此时有5个停车位可用。一辆汽车进入停车场前,先查询信号量的值,

    不为0表明有可用停车位,汽车进入停车场并使用一个停车位,信号量减1,表明占用一个停车位,可用数减少。

5.进程的通信方式有哪些?

  进程通信,是指进程之间的信息交换(信息量少则一个状态或数值,多者则是成千上万个字节)。因此,对于用信号量进行的进程间的互斥和同步,由于其所交换的信息量少而被归结为低级通信。

  所谓高级进程通信指:用户可以利用操作系统所提供的一组通信命令传送大量数据的一种通信方式。操作系统隐藏了进程通信的实现细节。或者说,通信过程对用户是透明的。

    高级通信机制可归结为三大类:

    (1)共享存储器系统(存储器中划分的共享存储区);实际操作中对应的是“剪贴板”(剪贴板实际上是系统维护管理的一块内存区域)的通信方式,比如举例如下:word进程按下ctrl+c,在ppt进程按下ctrl+v,即完成了word进程和ppt进程之间的通信,复制时将数据放入到剪贴板,粘贴时从剪贴板中取出数据,然后显示在ppt窗口上。

    (2)消息传递系统(进程间的数据交换以消息(message)为单位,当今最流行的微内核操作系统中,微内核与服务器之间的通信,无一例外地都采用了消息传递机制。应用举例:邮槽(MailSlot)是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入数据。

    (3)管道通信系统(管道即:连接读写进程以实现他们之间通信的共享文件(pipe文件,类似先进先出的队列,由一个进程写,另一进程读))。实际操作中,管道分为:匿名管道、命名管道。匿名管道是一个未命名的、单向管道,通过父进程和一个子进程之间传输数据。匿名管道只能实现本地机器上两个进程之间的通信,而不能实现跨网络的通信。命名管道不仅可以在本机上实现两个进程间的通信,还可以跨网络实现两个进程间的通信。

  通信方式主要分为:管道、系统IPC(包括消息队列、信号量、共享存储器)、SOCKET、远程过程(函数)调用RPC

     管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe)

  • 管道管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的道端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在有数据写入管道前,进程将一直阻塞。同样地,管道已经满时,进程再试图写管道,在其它进程从管道中移走数据之前,写进程将一直阻塞。

注1:无名管道只能实现父子或者兄弟进程之间的通信,有名管道(FIFO)可以实现互不相关的两个进程之间的通信。

     注2:用FIFO让一个服务器和多个客户端进行交流时候,每个客户在向服务器发送信息前建立自己的读管道,或者让服务器在得到数据后再建立管道。使用客户的进程号(pid)作为管道名是一种常用的方法。客户可以先把自己的进程号告诉服务器,然后再到那个以自己进程号命名的管道中读取回复。

  • 信号量信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其它进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
  • 消息队列是一个在系统内核中用来保存消 息的队列,它在系统内核中是以消息链表的形式出现的。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点
  • 共享内存:共享内存允许两个或多个进程访问同一个逻辑内存。这一段内存可以被两个或两个以上的进程映射至自身的地址空间中,一个进程写入共享内存的信息,可以被其他使用这个共享内存的进程,通过一个简单的内存读取读出,从而实现了进程间的通信。如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。共享内存是最快的IPC方式,它是针对其它进程间通信方式运行效率低而专门设计的。它往往与其它通信机制(如信号量)配合使用,来实现进程间的同步和通信。
  • 套接字:套接字也是一种进程间通信机制,与其它通信机制不同的是,它可用于不同机器间的进程通信。

6.上下文切换

  对于单核单线程CPU而言,在某一时刻只能执行一条CPU指令。上下文切换(Context Switch)是一种将CPU资源从一个进程分配给另一个进程的机制。从用户角度看,计算机能够并行运行多个进程,这恰恰是操作系统通过快速上下文切换造成的结果。在切换的过程中,操作系统需要先存储当前进程的状态(包括内存空间的指针,当前执行完的指令等等),再读入下一个进程的状态,然后执行此进程。



原文地址:https://www.cnblogs.com/JesseP/p/11626156.html

时间: 2024-10-14 17:43:32

操作系统知识点总结(2)的相关文章

操作系统知识点_用户编程接口

3.用户编程接口 函数调用和系统调用 函数调用运行在用户空间,为程序员提供调用真正的幕后完成实际事务的是系统调用接口.系统函数是内核提供给应用程序的接口,属于系统的一部分. 函数调用:调用函数库中的一段程序或函数:与用户程序联系:在用户地址空间执行:运行时间属于"用户时间":属于过程调用,系统开销小: 系统调用:各个系统的系统调用是不同的:调用系统的内核服务:是操作系统的入口点:在内核地址空间执行:"系统"时间:在用户和内核空间切换开销大:unix中有大约90个.如

操作系统知识点

转自 http://blog.csdn.net/yangcs2009/article/details/38148505 一.进程管理 进程是具有独立功能程序在某个数据集合上的一次执行过程.线程是进程内的一个执行实体或执行单元. 1.进程和线程的区别: 不同进程的地址空间是独立的,而同一进程内的线程共享同一地址空间.一个进程的线程在另一个进程内是不可见的.在引入线程的操作系统中,进程是资源分配和调度的单位,线程是处理机调度和分配的单位,资源是分配给进程的,线程只拥有很少资源,因而切换代价比进程切换

操作系统知识点总结

操作系统的基本特征 并发:同一段时间内多个程序执行(注意区别并发和并行,前者是同一时刻的多个事件,后者是统一时间段内的多个事件) 共享:系统中的资源可以被内存中多个并发执行的进线程共同使用 虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进 操作系统的主要功能 处理机管理:处理机分配都是以进程为单位,所以处理机管理也被看做是进程管理.包括进程控制,进程同步,进程通信和进程调度 存储器管

【编程书籍 大系】 计算机开放电子书汇总

计算机开放电子书汇总 站点 站点源码 100个gcc小技巧 在线阅读 PDF格式 EPUB格式 MOBI格式 100个gdb小技巧 在线阅读 PDF格式 EPUB格式 MOBI格式 关于浏览器和网络的 20 项须知 在线阅读 PDF格式 EPUB格式 MOBI格式 2015互联网企业校招笔试题 MEGA下载 Github下载 3周3页面 在线阅读 PDF格式 EPUB格式 MOBI格式 简明 Python 教程 在线阅读 PDF格式 EPUB格式 A Guide to HTML5 and CSS

信管备考知识点精讲·操作系统之进程与线程

信息系统管理工程师是全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个中级考试.信息系统管理工程师考试要求考生掌握计算机系统.操作系统.数据库.计算机网络.信息化和信息系统等相关知识内容.信息系统管理工程师考试要求掌握的内容宽且多,备考期间哪些内容是需要重点掌握的呢?下面跟着希赛软考学院来学习信息系统管理工程师操作系统章节有关进程与线程需要重点掌握的内容. 信息系统管理工程师备考知识点精讲之进程与线程  1.进程 (1)进程概念 进程是程序在一个数据集合上运行的过程,它是系统

操作系统存储器管理知识点

1.多级存储器 1)存储层次可以分为三层:寄存器.主存(内存).辅存(磁盘): 2)不同层次之间还有相应的缓存以减小不同层次间读写速度不匹配程度:简单来说,主存也即寄存器和辅存之间的高速缓存: 3)不同层次的存储器读写效率不一样,读写速度越快,成本越高. 4)寄存器.主存.高速缓存等属于操作系统管理的范畴,断电后数据会丢失:而磁盘属于设备管理的范畴,断电后数据不会丢失. 2.程序装入 1)绝对装入方式:程序编译时即已经知道装入内存后的地址,程序的逻辑地址和实际内存地址完全一致,不需要重定位,这种

操作系统CPU调度知识点

1.进程基本概念:进程是程序的一次执行, 是系统进程资源分配和调度的基本单位. 2.进程三态:执行状态.就绪状态.阻塞状态:三态转换规则,就绪状态的进程由于调度进程执行状态,执行状态由于时间片用完而进入就绪状态,由于I/O请求而进入阻塞状态,I/O完成后进入就绪状态. 创建完成直接进入就绪状态,等待处理机调度. 3.挂起状态引入原因:1)终端用户请求,2)父进程请求,3)负荷调节需要,4)操作系统需要. 原三态进一步可以分为:执行状态.活动就绪状态.静止就绪状态.活动阻塞状态.静止阻塞状态:处于

【操作系统】知识点总结之进程管理与调度

1.中央处理器 1.1 CPU:处理器由运算器.控制器.一系列的寄存器以及高速缓存构成 运算器实现指令中的算术和逻辑运算,是计算机计算的核心 控制器负责控制程序运行的流程,包括取指令.维护CPU状态.CPU与内存的交互等等 寄存器是指令在CPU内部作处理的过程中暂存数据.地址以及指令信息的存储设备.在计算机的存储系统中它具有最快的访问速度.包括用户可见寄存器,控制寄存器. 用户可见寄存器 高级语言编译器通过算法分配并使用之,以减少程序访问主存次数 包括通用寄存器.数据寄存器.地址寄存器 数据寄存

操作系统常考知识点总结

1.进程管理 1.进程是并发过程中程序的执行过程 2.进程的特征:结构特征动态性并发性独立性异步性 3.临界区指在每个进程中访问临界资源的那段代码 4,现在操作系统中申请资源的基本单位是进程,在CPU得到执行的基本单位是线程,进程是由程序段.数据段.PCB组成的 5,对临界资源应采取互斥访问方式来实现共享 6,P.V操作是一种低级进程通信原语 7,对于记录性信号量,在执行一次P操作时,信号量的值应当减1,当其值为小于0时进程应阻塞:在执行V操作时,信号量的值应当加1:当其值小于等于0时,应唤醒阻