进程和线程
Posted 闲云野鹤的博客日志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程和线程相关的知识,希望对你有一定的参考价值。
进程是操作系统提供的抽象。即所有的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之间的状态,是进程调度,由操作系统完成。
进程实现
实现进程,操作系统需要维护一张表格,即进程表。这个表包含以下的字段信息
二、线程
线程又叫迷你进程,是存在进程的单元。线程之间共享内存。线程更轻量。创建线程比创建线程开销小的多。
以上是关于进程和线程的主要内容,如果未能解决你的问题,请参考以下文章