Linux操作系统下的PCB是: task_struct
https://www.cnblogs.com/tongyan2/p/5544887.htmlhttps://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是 PCB(进程控制块) ?_哔哩哔哩_bilibili校招必背操作系统面试题-什么是 PCB(进程控制块) ?, 视频播放量 145、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 3、转发人数 0, 视频作者 骇客567, 作者简介 视频是为了整理和学习,如果有违规请联系up主进行删除,谢谢,相关视频:校招必背操作系统面试题-进程、线程、协程切换的开销?,校招必背操作系统面试题-为什么进程切换的开销比线程的大?,校招必背操作系统面试题-什么是堆空间?,校招必背操作系统面试题-什么是孤儿进程?,校招计算机网络面试题-TCP 的三次握手是什么?,校招必背操作系统面试题-什么是进程?,校招必背操作系统面试题-进程终止的原因有哪些?,校招必背操作系统面试题-如何处理过多的僵尸进程?,校招必背操作系统面试题-引起进程阻塞与唤醒的事件有哪些?,校招必背操作系统面试题-进程和线程的区别是什么?https://www.bilibili.com/video/BV1PwVYeZE9L/
进程=内核数据结构+对应的磁盘代码
为什么会有PCB(struct task_struct)结构体呢?
为了更好的管理进程。
理念:先描述在组织。
与进程有关的系统调用。getpid 查看进程编号。
head -1
提取文本的第一行。
命令行上启动的进程,一般其父进程为bash
运行状态:位于CPU运行队列中的进程---R
阻塞状态:不在运行队列中的进程,将进程(pcb)放入底层硬件对应的运行队列中的进程
等待某种外设资源,导致进程暂时被阻塞。
阻塞不一定挂起,但挂起一定会阻塞
带+表示前台进程
不带+表示后台进程
/* * The task state array is a strange "bitmap" of * reasons to sleep. Thus "running" is zero, and * you can test for combinations of others with * simple bit tests. */ static const char * const task_state_array[] = { "R (running)", /* 0 */ "S (sleeping)", /* 1 */ "D (disk sleep)", /* 2 */ "T (stopped)", /* 4 */ "t (tracing stop)", /* 8 */ "X (dead)", /* 16 */ "Z (zombie)", /* 32 */ };
R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列 里。
S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠 (interruptible sleep)
D磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的 进程通常会等待IO的结束。
T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可 以通过发送 SIGCONT 信号让进程继续运行。
X死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态
最终优先级=老的优先级(每次均 从80开始)+nice----[80-2-,80+19]
nice的取值为[-20,19]
修改优先级的指令:
sudo top
查看优先级:
ps -la
CPU的主要作用:
1.取指令
2.分析指令
3.执行指令
寄存器硬件不等于寄存器内的数据
将可执行程序拷贝到系统目录下:
sudo rm myprocess /usr/bin/
查看历史记录的条数:
echo $HISTSIZE
向大家推荐精品c语言课程:
更着鹏哥可以然我们的c语言从入门到熟悉。