UNIX系统编程复习笔记 一

来源:互联网 发布:网络推广课程 编辑:程序博客网 时间:2024/04/30 18:14

2016.12.5 DAGE

a.操作系统

是管理计算机硬件与软件资源的计算机程序。

操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序的运行,改善人机界面,为其他的应用软件提供支持,是计算机的系统资源最大限度的发挥作用等。操作系统管理者计算机硬件资源,同时按照应用程序的资源需求,进行分配资源。
资源管理,程序控制,人机交互。
处理器管理、存储器管理、文件关系、设备管理。*

b.进程

  • 1.定义:
    进程是计算机已运行程序的实体。
    程序只是指令的集合,并没有占用CPU资源,但是进程是正在运行的程序。程序与进程是多对多的关系(可以多个用户运行同一个程序)

  • 2.进程的状态:
    执行、就绪、阻塞、创建、结束。 前三个是基本状态。可以相互转换。
    执行-就绪:时间片轮转,当前系统分配给的时间片结束,CPU去执行优先级更高地进程。

    进程与程序:
    1>.进程是程序及数据在计算机上一次运行活动,是一个动态概念。进程的运行实体是程序,进程是由程序、数据和进程控制块(PCB)三部分组成
    2>.进程是程序的执行过程,它是动态的创建与消亡的,具有一定的生命周期。
    3>.一个进程可以执行一个或几个程序,一个程序也可以构成多个进程,进程可以创建进程,程序不可能形成新的程序。
    4>.进程与程序的组成不同。进程的组成由上面那三个块组成。

    创建新进程时会创建新的地址空间,子进程是父进程的复制品,在fork后子进程获得父进程的数据空间、堆和栈的复制品。而创建的多个线程之间共同使用父进程的地址空间。
    PS:这儿复制了父进程的堆和栈的复制品,也会复制父进程的输出缓冲区。

c.线程

    1.定义:
是程序执行流的最小单位。一个标准的线程由线程ID,当前指令指针PC,寄存器集合和堆栈组成。
线程是进程的一个实体,是被系统分配和调度的基本单位,线程自己不拥有系统资源。只拥有一点在运行时必不可少的资源,但它可和同属于同一进程的其他线程共享进程所拥有的的资源。
    2.多线程
线程之间共享的进程环境:进程代码段,进程的共有数据(全局变量等),线程打开的文件描述符、信号处理器等
而每个线程自己的个性为:
线程ID
寄存器组的值
线程的堆栈(而同属于同一个进程的所有线程共享一个堆)
错误返回码
线程的优先级

进程和线程之间的区别:

  • 1.调度:
    进程是拥有资源的基本单位,线程是独立调度的基本单位。
    进程只作为除CPU以外系统资源的分配单元,线程则作为处理器的分配单元。
  • 2.拥有资源:
    拥有资源在定义第二行。
  • 3.并发性:
    进程可以并发进行并且同一进程的多个线程也可以并发进行。
  • 4.系统开销:
    创建和撤销进程时,系统都要为之分配或回收资源,因此操作系统的开销远大于创建或撤销线程的开销。
    并且,进程的切换涉及当前执行CPU环境的保存以及新调度CPU环境的设置,而线程切换只需要保存和设置少量寄存器内容,开销小。
    同一进程的多线程共享进程的地址空间,所以多个线程之间的同步与通信比较容易实现。
  • 5.地址空间与其他资源(如打开的文件):
    进程的地址空间相互独立,同一进程的各线程之间共享进程的资源,某进程内的线程对其他进程不可见。
  • 6.通信:
    进程之间的通信需要接祖操作系统,而线程之间可以直接读写数据段进行通信,比如全局变量。
0 0
原创粉丝点击