操作系统篇

操作系统
程序,进程,线程
程序的并发执行:
单个CPU中,同时只能有一个程序运行占用CPU,所以程序的并发执行其实是程序交替执行的宏观效果。多道程序并发执行时与单道程序顺序执行时相比出现的问题有:1,间断性,原本程序时顺序执行的,并发执行后,一个程序在执行其中一部分时必须等待其他的程序处理完之后,解除占用的资源之后才能继续执行。2,封闭性,多个程序共享系统中的所有资源。3.不可再现性,由于受到其它程序的影响,程序再次执行时很难重复完全相同的执行过程。
进程的引入:
由于程序是一个静态的概念,而CPU的执行活动是程序的执行过程,是一个动态的概念。而且同一时段一个程序可以被同时运行多次,所以再无法用程序来进行区分了,所以引入了进程这个概念。
进程实体=程序段+相关数据段+PCB(Process control Block)
当程序开始运行时进程就产生了,程序要正常运行肯定需要申请相关的资源,这些资源可以是(输入输出设备,操作系统的内存等)
线程的引入:
为什么有了进程还要有线程?
进程在同一时间段内只能做同一件事,如果我们想在同一时间段内做好几件事,那么进程就不够用了。还有比如进程在执行过程中,因等待输入数据而陷入阻塞,而进程还有其他不依赖输入数据的其它工作可做,但由于进程的阻塞就无法进行。
比如我们在使用word的时候,其实就是多线程的体现,有负责显示的,有负责输入的,还有负责定时存盘的。这些线程一起运行就让我们感觉到输入和显示同时发生。
还有进程既要作为资源分配的基本单位,又要作为调度和独立运行的基本单位,所以在程序并发执行的时候就要付出很大的时空开销,所以引入线程作为CPU调度和执行的最小单元。
进程和线程的区别?
1,进程作为资源分配的基本单位,线程作为CPU调度和执行的最小单元。线程基本上不拥有资源,它共享它所在进程的资源(例如:进程代码段,进程的公有数据(利用这些共有数据可以很容易的实现多个线程间的相互通信),进程打开的文件描述符,信号处理器,进程的当前目录和进程用户ID与进程组ID),不同进程的地址空间是相互独立的,而属于同一进程的所有线程共享同一个地址空间(该进程的地址空间)。
2,线程的并发执行程度高于进程并发执行的程度。
3,创建和撤销一个线程所花费的时空开销远小于创建和撤销一个传统进程所花费的时空开销。尤其是线程间彼此切换的时间远小于进程间切换所需要的时间。
4,不同进程拥有各自独立的数据空间,因此要进行数据传递很费时间,但是多个线程共享进程的数据空间,一个线程的数据可以直接被属于同一进程的其它线程使用,因此线程间数据传递既快捷又方便。

posted @ 2018-09-20 23:06  快乐的内啡肽呀  阅读(24)  评论(0)    收藏  举报