进程和线程
一、什么是进程:
站在操作系统的的角度,进程就是一个PCB(进程控制块),系统利用PCB来描述进程的基本情况和活动过程,进程控制、管理过程。
进程是资源分配和调度的基本单位。
进程如何描述一个运行中的程序:
内存指针、程序计数器、上下文数据、标识符PID、进程状态、状态、优先级、记账信息、IO信息
进程的特性:
1、动态性:由创建而产生、调度而执行、撤销而消亡,有一定的生命周期
2、并发性:指多个进程实体存在于内存之中,能够在一段时间内同时运行。
3、独立性:进程是一个能够独立运行的,独立获取资源、独立接收调度的基本单位。
4、异步性:各自独立,并且以不可预知的速度向前推进。
进程的三种状态:
1、就绪态:指的是进程已经处于准备好运行的状态,已经获取到除CPU以外的资源。
2、阻塞态:这里指正在运行的进程由于发生某种事件,例如说(I/O请求,获取缓存失败)导致无法继续执行的状态。
3、运行态:指的是程序已经获取CPU,程序正在执行的状态。

Linux下的进程状态:
运行态R/可中断休眠状态S/不可中断休眠状态D/停止状态T/死亡状态X/追踪状态t/僵死状态Z
僵死状态:进程已经退出,但是资源并未释放。
僵尸进程:处于僵死状态的进程。
僵死进程的产生:
子进程先于父进程退出,为了保存退出的原因,因此资源并没有完全释放,因此在子进程退出后,操作系统会通知父进程来回收子进程的资源,如果父进程未关注子进程的状态,那么就会产生僵尸进程。
1、僵尸进程的危害:资源泄露
2、僵尸进程的避免:进程等待

本文深入探讨了进程和线程的区别,详细介绍了进程的动态性、并发性、独立性和异步性,以及其三种状态(就绪态、阻塞态、运行态)。在Linux环境下,分析了进程的各种状态和特殊情况,如僵死进程、孤儿进程和守护进程。同时,阐述了线程作为轻量级进程的特点,以及多线程共享内存的优势。最后,讨论了进程同步与互斥的概念,明确了临界区的重要性,并提出了同步机制应遵循的四条规则。
最低0.47元/天 解锁文章
1737

被折叠的 条评论
为什么被折叠?



