一、程序与进程:解决并发执行的不可再现性
程序->进程:并发每次执行的都是一个进程。进程是程序的一次执行。并有进程同步机制。
进程和程序的区别:
- 进程有进程控制块(PCB),程序段和相关的数据段。程序只有程序段和数据段。
- 进程具有动态性,进程的实质是进程实体的执行过程,系统自己创建、系统调度决定执行、撤销PCB后,进程就消失了。有生有死,仿佛有生命,故称动态性;程序是一组有序指令的集合,是静态的。
- 进程具有并发性,进程有PCB,多个进程实体存于内存中,可以并发执行。程序没有PCB,不能参与到并发执行。
- 进程具有独立性,进程能够独立的获取资源、运行、接受调度。程序因为没有PCB ,所以不能独立的获取资源、运行和接受调度。
- 进程具有异步性,进程是走走停停的运行的,有进程同步机制来保障结果是可再现的。CPU的现场信息保留在PCB中。
二、进程到线程:解决并发执行的效率问题
进程和线程的关系和异同:
1.进程和线程都是独立调度和分配的基本单位。
2.进程和线程都具备并发性。
3.进程是一个可拥有资源的独立单位,线程本身并不拥有系统资源,而仅有一点必不可少的、能保证独立运行的资源。
4.多个线程可以共享进程拥有的资源。因为同一个进程的所有线程都具有相同的地址空间。
5.线程的独立性比进程低。因为多个线程共享进程的内存地址空间和资源。
6.多个线程可以分配到多个处理机上并行执行
在多线程OS中,虽然线程更独立,可并发执行,但是进程不是可执行实体了,线程是独立运行(调度)的基本单位
三、作业
作业中包含程序和数据,以及作业说明书。批处理系统中以作业为单位从外存调入内存。