深入理解操作系统之进程,线程

 

 其实,我觉得无论是进程还是线程它其实就是一个抽象的描述电脑到底是怎样去执行我们的程序的。

 电脑的底层实现是我们的汇编,我们在用汇编去写代码的时候,我们所写的程序是直接对我们的寄存器,主存储器,累加器等这些寄存器去驱动的,所以此时我们不用考虑去如何分配资源,在早期我们就是直接使用汇编语言对这些硬件直接进行驱动的,我们可以准确的知道去使用哪些寄存器,哪些存储单元。

 因为我们是直接对我们的程序进行驱动的,所以我们不用去考虑资源是如何去分配的,因为我们就是资源的分配者,但使用汇编程序编程确又是很不方便的,所以我们必须把驱动硬件的程序写好,那这就要考虑多种情况,当我们正在执行程序时,若有请求那我们要不要去响应它,还有我们可以直接对它进行关机,即就是让它不要去工作了。这些我们都是可以直接对它进行去操作的。但这样简直太麻烦人,所以聪明的人就想出了一个办法,那就是我们把各种各样的情况都想到,并把出现各种情况的可能性都集成在一起,那这就是我们的操作系统,对硬件直接进行驱动的,我们把它称之为汇编系统,但在汇编系统中我们写程序很麻烦,所以这时聪明的人又想出了一个办法,那就是编译系统,它可以把我们用高级语言如C语言,写好的程序转换成汇编语言,基于是怎么转换的,我也不知道。

所以这也就有了进程和线程这一说,它是为了方便的告诉我们,一个程序执行的情况,因为在一个系统中它是可以同时执行很多程序的,(实际上是分时执行的)所以我们就需要去描述它,这时就有了进程的概念。那如何描述进程呢,一个进程有名字,可以用id表示,它有生存时间我用i表示,它用那个寄存器,它用哪些文件,它的进程优先级,它所占用的内存块数等我们想要描述或者想在知道些什么,我们可以再自己加,这就是创建一个进程所需要的资源的意思。但计算机其执行时确不一定是按照指令的顺序去执行的,比如一个数据库系统,我们要求它创建一个表,之后又要求它打印一个表,那么此程序在执行时就是通过线程去执行的,因为没有必要再去创建资源了,因为主程序中已经有了,就没有必要再去浪费空间了,我们所需要的哪些东西 在创建一个进程时都已经有了,但进程的执行还是需要它的描述的,比如进程号,生存期等,需要浪费空间,所以创建进程会省去很多空间,比如页表的空间我们就可以省了。看来创建进程确实是很省资源啊,那么什么时候我们可以去创建进程还是线程去实现我们的目标,只要确定线程是共享文件资源的,即若一个进程程中包含有我们需要的文件资源,那我们就可以用线程去创建我们的任务了,其实只要一个文件中包含有独立任务的程序,那我们就可以使用线程去创建它。知道这些概念对我们编写网络程序是很有用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值