进程和线程

进程是操作系统提供的抽象。即所有的cpu只能使用一个。

 一、进程

在进程模型中。计算机所有可运行的软件,包括操作系统,被组成程顺序进程,简称为进程。

一个进程就是一个程序运行的实例,它包括程序计数器,寄存器,和变量的当前值。

进程和程序的区别

一个进程,就是某种类型程序的一次运行的过程,它包括输入输出,以及状态、程序。如果一个程序被运行了两次。那么是两个进程。因为内存中,会共享代码。但是不会改变进程的状态。

 四种事件导致进程的创建

1.系统初始化(init)

2.执行了正在运行的进程所调用的进程进行系统调用(fork)

3.用户请求创建一个新进程

4.批处理作业的初始化

在unix操作系统中,只有一个系统调用可以创建进程,就是fork。这个系统调用创建一个和调用进程相同的副本

进程的终止

进程出现以下情况会终止

1.正常退出(exit)

2.出错退出

3.严重退出

4.被其他进程杀死 (kill)

进程的层次结构

一个进程中创建了另外一个进程,则新创建的进程就是子进程,它和父进程以某种形式保持关系。一个进程只有一个父进程。可以有0个或者多个子进程。

在unix系统中,有一个init进程。它是进程树的根。

进程的状态

cat hello.txt | grep world 

这将是两个进程 cat 和grep

进程的状态。有三种 就绪=》运行=》阻塞

转换2和3之间的状态,是进程调度,由操作系统完成。

进程实现

实现进程,操作系统需要维护一张表格,即进程表。这个表包含以下的字段信息

二、线程

 线程又叫迷你进程,是存在进程的单元。线程之间共享内存。线程更轻量。创建线程比创建线程开销小的多。

原文地址:https://www.cnblogs.com/tl542475736/p/7677114.html