进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。而并发运行,则是说一个进程的指令和另一个进程的指令是交错执行的。
在大多数系统中,需要运行的进程数是多于可以运行它们的CPU个数的。传统系统在一个时刻只能执行一个程序,而先进的多核处理器同时能够执行多个程序。无论是在单核还是多核系统中,一个CPU看上去都像是在并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。
计算机操作系统教程笔记
操作系统的定义:操作系统是计算机系统中的一个系统软件,他是这样一些程序模块的集合——他们管理和控制计算机系统中的硬件及软件资源,合理地组织计算机工作流程,以便有效地利用这些资源为用户提供一个具有足够的功能、使用方便、可扩展、安全和可管理的工作环境,从而在计算机与其用户之间起到接口的作用。
单处理机中的多道程序运行的特点:
多道、宏观上并行、微观上串行
spooling系统
spooling又可叫做外围设备同时联机操作。工作原理如下图:
补充:
spooling系统的三大组成部分:
<1>输入井和输出井
<2>输入缓冲和输出缓冲
<3> 输入进程SPi和输出进程SPo
在spooling系统中,多态外围设备通过通道或DMA器件和主机与外存连接起来。作业的输入输出过程由主机中的操作系统控制。
进程
进程的定义:
进程:并发执行的程序在执行过程中分配和管理资源的基本单位。
进程是一个动态的执行过程。
进程和程序的区别和联系:
P39
进程的组成:进程控制块(PCB)、有关程序段、该程序段对其进行操作的数据结构集。
线程
线程是进程的一部分。
线程有时又被称为轻权进程或轻量级进程。
线程和进程都是都是CPU调度的一个基本单位。
线程和进程的区别
进程是系统中所有资源分配时的基本单位,线程只能共享它所属进程的资源。
与进程控制表(PCB)相似,线程也有自己的线程控制块(TCB)主要是存堆栈、寄存器的信息。
进程拥有一个完整的虚拟地址空间。
进程不依赖与线程而独立存在。反之,线程是进程的一部分,他没有自己的地址空间,它和进程内的其他线一起共享分配给该进程的所有资源。
设备管理
设备管理中的 I/O 控制方式主要包括程序直接控制方式、中断方式、DMA方式、通道方式。
通道方式包括:字节多路通道、数组多路通道、选择通道
字节多路通道以字节为单位,连接大量低速设备
数组多路通道以块为单位,主要用来连接中速块设备。
选择通道以块为单位,传送速度高,被用来连接高速外部设备,以块为单位成批传送数据。
死锁
死锁的定义:各并发进程相互等待对方所拥有的资源,且这些并发进程在得到对方的资源之前都不会释放自己所拥有的的资源。从而造成大家都想得到资源但都又得不到资源,各并发进程不能继续向前推进的状态。
死锁的起因:并发进程的资源竞争。
产生死锁的根本原因:系统提供的资源个数少于并发进程所要求的该类资源数。
产生死锁的必要条件:
1)互斥。并发进程所要求和占有的资源是不能同时被两个以上进程使用或操作的,进程对他所需要的资源进行排他性控制。
2)不剥夺条件
3)部分分配
4)环路条件
面试题笔记
含义:
进程是具有一定独立功能的的程序,进程是系统进行资源分配和调度的一个独立单元。
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源
区别:
- 一个程序至少有一个进程,一个进程至少有一个线程.
- 线程的划分尺度小于进程,使得多线程程序的并发性高。
- 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
- 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
- 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。