线程基本概念及产生的背景(1)

并行与并发

并行性是指两个或多个事件在同一个时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。

进程是什么

通常的程序是静态实体,在多道程序系统中,他们是不能独立运行的,更不能和其他程序并发执行。在操作系统中引用进程的目的,就是为了使多个程序能并发执行。为使多个程序能并发执行,系统必须分别为每个程序建立进程。进程是指在系统中能独立运行并作为资源分配的基本单位,它由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体,多进程直接可并发执行和交换信息。在为引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间只能顺序执行,即计算程序执行完成后,才允许I/O程序执行;反之,执行I/O操作时,计算程序也不能执行。但为计算程序和I/O程序分别建立一个进程后,这两个进程便可并发执行。

进程创建

系统在创建进程时,必须为它分配其所需的、除了处理器以外的所有资源,如内存空间、I/O设备,以及建立相应的系统为每个进程定义的数据结构——进程控制块PCB(Process Control Block)

进程撤销

系统在撤销进程时,又必须先对其所占有的资源执行回收操作,然后撤销PCB。

进程切换

对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,因而花不少的处理器时间

线程是什么

长期以来,进程都是操作系统中可以拥有资源并作为独立运行的基本单位,为的是使多个程序能并发执行,以提高资源利用率和系统吞吐量。由于进程是一个资源的拥有者,因而在创建、撤销和切换中,系统必须为之付出较大的时空开销。也正因如此,在系统中所设置的进程,其数目不宜过多,进程切换的频率也不宜过高,这也就限制了并发的进一步提高。若能将进程的两个属性(拥有资源的独立单位、独立调度和分派的基本单位)分开,由系统进行分开处理,即对于作为调度和分派的基本单位,不同时拥有资源单位,以做到“轻装上阵”;而对于拥有资源的基本单位,又不对之进行频繁的切换。那么,在操作系统再引入线程,则使为了减少程序在并发执行时所付出的时空开销,线程作为独立调度和分派的基本单位,进程作为拥有系统资源的的基本单位,使OS具有更好的并发性。线程也更适合多处理器环境下的调度、分派和切换。

线程属性
  • 轻型实体。基本不上不拥有系统资源,除了保证独立运行的资源(线程控制块TCP,用于指示被执行指令序列的程序计数器,保留局部变量、少数状态参数和返回地址等的一致寄存器和堆栈)
  • 独立调度和分派的基本单位
  • 可并发执行
  • 共享进程资源
线程的状态
  1. 状态参数。在OS中的每一个线程都可以利用线程标识符和一组状态参数进行描述。状态参数通常有这样几项:寄存器状态,它包括程序计数器PC和堆栈指针中的内容;堆栈,在堆栈中通常保存有局部变量和返回地址;线程运行状态,用于描述线程处于何种状态;优先级,描述线程执行的优先程度;线程专有存储器,用于保存线程自己的局部变量拷贝;信号屏蔽,即对某些信号加以屏蔽。
  2. 线程运行状态。执行状态,标识线程正获得处理器而运行;就绪状态,指线程已具备了各种执行条件,一旦获得CPU便可执行的状态;阻塞状态,指线程在执行中因某事件而受阻,处于暂停执行时的状态。
线程的创建和终止

多线程OS环境下,应用程序在启动时,通常仅有一个线程在执行,该线程被称为“初始化线程”。它可以根据需要再去创建若干个线程。在创建新线程时,需要利用一个线程创建函数/系统调用,并提供相应的参数,如指向线程主程序的入口指针、堆栈的大小,以及用于调度优先级等。创建完成后返回线程标识符供后续使用。线程终止的方式有两种:一种是在线程完成了自己的工作后自愿退出;另一种是线程在运行种出现错误或由某种原因而被其他线程强行终止。

操作系统的发展过程
无操作系统技术系统

1.人工操作方式(纸带/卡片——>输入机——>计算机——>打印结果)
即由程序员将事先已穿孔(对应程序和数据)的纸带/卡片装入纸带/卡片输入机,再启动他们将程序和数据输入计算机,然后启动计算机运行,当程序运行完毕取走计算结果之后,才让下一个用户上机。缺点,1、用户独占全机 2、CPU等待人工操作
2.脱机输入/输出方式(纸带/卡片机——>外围机——>磁带——>计算机——>磁带——>外围机——>打印机)
随着CPU速度的迅速提高和系统规模的扩大,人机矛盾变得日趋严重。此外I/O设备速度却提高缓慢,为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,引入了脱机输入/输出技术。该技术是先将装有用户程序和数据的纸带/卡片装入纸带/卡片输入机,在一台外围机的控制下,把纸带/卡片上的数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速的调入内存。当CPU要输出时,CPU可以直接高速的把数据从内存送到磁带上,然后再由另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。优点,1、减少了CPU的空闲时间 2、提高了I/O速度

已穿孔纸带

操作输入输出

单道批处理系统

为了充分利用计算机系统,应该尽量让该系统运行,以减少空闲时间。为此,通常是把一批作业以脱机的方式输入的磁带/盘上,并在系统中配上监控程序,在它的控制下一个接一个的连续处理。

image

特征
1、自动性,磁带/盘上的作业自动地顺序逐个依次运行,无需人工干预
2、顺序性
3、单道性,内存中仅有一道程序再运行
单道批处理系统是在解决人机矛盾以及CPU及I/O设备速度不匹配问题过程中形成的,旨在提高系统资源的利用率和系统吞吐量(系统在单位时间内所完成的工作总量)。

多道批处理系统

为了进一步提高资源的利用率和系统吞吐量,引用了多道程序设计技术,由此而形成多道批处理系统。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列;然后,由作业调度程序按一定的算法从队列中选择若干作业调入内存,使他们共享CPU和系统中各种资源,带来的好处是 1、提高CPU利用率 2、提高内存利用率和I/O设备利用率 3、增加系统吞吐量(保持CUP、I/O设备不断忙碌)

20180710162250.png

优缺点
1、提高资源利用率 2、系统吞吐量大 3、平均周转时间长 4、无交互能力(作业一旦开始,无法进行人工干预)
多道批处理系统需要解决的问题
1、处理器管理问题(如何给多道程序分配及回收处理器)
2、内存管理
3、I/O设备管理
4、文件管理(如何组织及管理以文件形式存在的程序和数据)
5、作业管理

分时系统(时间片)

为了提高计算机的利用率,将一台计算机提供给多个用户同时使用。用户需求,1、人机交互 2、共享主机 3、便于用户上机
unix、Linux(多用户多任务分时系统)
特征
1、多路性,允许在一台主机上同时联结多个终端,系统按分时原则为每个用户服务。宏观上,是多个用户同时工作,共享系统资源;围观上,则是每个用户的作业轮流运行一个时间片。多路性即同时性,它提高了资源的利用率
2、独立性,每个用户各占一个终端,彼此独立操作
3、及时性,用户的请求能在很短的时间内获得响应
4、交互性

实时系统

指系统能及时(或即时)响应外部事件的请求,在规定事件内完成的该事件的处理,并控制所有实时任务协调一致地运行。应用需求,1、实时控制(火炮自动控制系统、飞机自动驾驶系统、导弹制导系统等),包含实时控制的芯片的各种嵌入式设备和仪器。 2、实时信息处理(早期飞机或火车票系统)
特征
除了包含分时系统的特征外还有可靠性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 操作系统概论 操作系统的概念 操作系统是指控制和管理计算机的软硬件资源,并合理的组织调度计算机的工作和资源的分配,...
    野狗子嗷嗷嗷阅读 12,070评论 3 34
  • 第一章:操作系统引论 计算机系统是由硬件和软件两部分组成。操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的...
    Atomic_Gunner阅读 10,576评论 2 31
  • 朋友在抱龙峪开了一家慢生活主题客栈,邀请我们去小住几天,刚好西安这几天酷热,到山里可以躲避一下高温,于是欣然...
    霜叶shuangye阅读 1,633评论 6 1
  • 我的邻居李嫂,今年五十出头,胖瘦适中的身材,看上去不是很漂亮,但挺时尚,挺新潮。挺和善。 李嫂是后搬过来的,她家就...
    旖旎i阅读 1,214评论 0 0
  • 早晨10点,去游泳。 今早有点体悟,要不断寻找到让自己放松的场景。 刚起来时,感觉身体有些重,游完泳,感觉整个身体...
    晓彬Jerome阅读 577评论 0 1