首页 > 系统相关 >从操作系统层面认识Linux

从操作系统层面认识Linux

时间:2024-07-18 21:54:04浏览次数:26  
标签:必背 面试题 操作系统 层面 sleep Linux 进程 校招

 描述进程-PCB

Linux操作系统下的PCB是: task_struct

https://www.cnblogs.com/tongyan2/p/5544887.htmlicon-default.png?t=N7T8https://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是 PCB(进程控制块) ?_哔哩哔哩_bilibili校招必背操作系统面试题-什么是 PCB(进程控制块) ?, 视频播放量 145、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 3、转发人数 0, 视频作者 骇客567, 作者简介 视频是为了整理和学习,如果有违规请联系up主进行删除,谢谢,相关视频:校招必背操作系统面试题-进程、线程、协程切换的开销?,校招必背操作系统面试题-为什么进程切换的开销比线程的大?,校招必背操作系统面试题-什么是堆空间?,校招必背操作系统面试题-什么是孤儿进程?,校招计算机网络面试题-TCP 的三次握手是什么?,校招必背操作系统面试题-什么是进程?,校招必背操作系统面试题-进程终止的原因有哪些?,校招必背操作系统面试题-如何处理过多的僵尸进程?,校招必背操作系统面试题-引起进程阻塞与唤醒的事件有哪些?,校招必背操作系统面试题-进程和线程的区别是什么?icon-default.png?t=N7T8https://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语言从入门到熟悉。

标签:必背,面试题,操作系统,层面,sleep,Linux,进程,校招
From: https://blog.csdn.net/2301_77479435/article/details/140469841

相关文章

  • 十天学会Python——第8天:Linux基础
    1Linux基础1.1认识LinuxLinux目录:1Linux系统只有一个根目录/,所有原文件都在它下面2Linux主要目录/:根目录/bin:可执行的二进制文件的目录/etc:系统配置文件存放的目录/home:用户家目录1.2Linux基础命令1.2.1查看目录命令命令说明ls查看当前路径的目录信......
  • Linux系统下数据同步服务rsync
    什么是rsyncSync同步:刷新文件系统缓存,强制将修改过的数据块写入磁盘,并且更新超级块async异步:将数据先放到缓冲区,再周期性(一般是30s)的去同步到磁盘,Sync数据同步=>保存文件(目标)=>强制把缓存中的数据写入磁盘(立即保存),实时性要求比较高的场景asyn数据异步=>保存文件......
  • Linux安装mysql(超详细版)
    步骤1:新建一个文件夹,专放从网络下载的文件[root@iZ2zeh6vyxsq620zifz8jaZhome]#mkdirsoft#在根目录下创建也可以步骤2:切换目录,进入soft文件中[root@iZ2zeh6vyxsq620zifz8jaZ/]#cdhome/#若第一步文件建在根目录则执行该语句,否则不执行[root@iZ2zeh6vyxsq620zif......
  • Linux 提权-NFS 共享
    本文通过Google翻译NFSShareno_root_squash–LinuxPrivilegeEscalation这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。导航0前言1什么是NFS共享?2外部枚举NFS共享2.1使用Nmap枚举NFS共享2.2枚举NFS共享2.3......
  • Linux PSI--Pressure Stall Information
    Google在在Android11及之后版本的LMKD中,使用了psi作为杀进程的策略,本文简单介绍下psi。转载自使用PSI(PressureStallInformation)监控服务器资源_Linux_gameneedless_InfoQ写作社区1.概述当CPU、内存或IO设备争夺激烈的时候,系统会出现负载的延迟峰值、吞吐量下降,并可能触发......
  • 【Linux网络编程-7】epoll边沿触发
    非阻塞recvEAGAIN、EWOULDBLOCK错误码值11返回值含义>0接收字节数0接收FIN包,连接被对端断开-1(errno==EAGAIN||EWOULDBLOCK)表示还有数据未读。反之,则表示发生了错误。//epollServer.cpp#include<stdio.h>#include<stdlib.h>#include<string.h>#in......
  • 操作系统发展简史(Unix/Linux 篇 + DOS/Windows 篇)+ Mac 与 Microsoft 之风云争霸
    操作系统发展简史(Unix/Linux篇)说到操作系统,大家都不会陌生。我们天天都在接触操作系统——用台式机或笔记本电脑,使用的是windows和macOS系统;用手机、平板电脑,则是android(安卓)和iOS系统。如果是从事信息通信行业,还经常会和ubuntu、CentOS、Fedora这样的Linux......
  • AMD R2000 Bilby 单板 串口在Grub和Linux下的使用
    Ubuntu20启动时,自动加载了UART驱动,系统启动信息含有UART的相关信息。[2.418748]printk:console[ttyS4]disabled[2.418757]AMDI0020:00:ttyS4atMMIO0xfedc9000(irq=3,base_baud=3000000)isa16550A[2.418820]printk:console[ttyS4]enabled[......
  • Linux基础命令
    1.查询目录中内容:ls2.查看日志:tail -f -n 日志文件名选项: -f:显示最新的追加打印的内容 -n 行数如:tail-f-n1000 a.log 3.查看所有正在运行的进程: ps-ef  如: 查看到进程号以后 ps-ef|grepjava 4.强制杀死进程:killpid......
  • linux发布项目
    1,在linux上配置.net环境https://learn.microsoft.com/zh-cn/dotnet/core/install/linux官方网址(1)找到安装系统的版本(2)选择安装的.net版本(安装SDk和运行时)2.在linux上创建一个文件夹,把发布的文件移动到文件夹中visualstudio运行api使用命令dotnet(api).dll文件配置任何......