【2022.8.28】笔试记录

这里写目录标题

  • 小红书
    • IPV4 组播地址
    • 触发进程撤销
    • 控制结构task_struct
    • 等值连接
    • **chmod命令用来设定文件的权限**

小红书

IPV4 组播地址

按照主类方式划分:分为ABCDE 五类,主类网。在默认情况下通过第一个8位就可以辨别类别

以下“X”代表0或1均可以,无所谓。

A: 0 XXXXXXX 0-127

B: 10 XXXXXX 128-191

C: 110 XXXXX 192-223

D: 1110 XXXX 224-239

E: 1111 XXXX 240-255

2、按照IP地址特性:

单播地址(A.B.C类) & 组播地址(D类) & 科研地址(E类)

单播地址:可以作为源/目地址。

组播地址:只可以作为目标IP地址。

单播:一对一(微信私聊)

组播:一对多(微信群聊)

广播:一对所有(微信朋友圈)

3、在单播地址中还存在私有地址和公有地址分类:

公有地址:(1)全球唯一性 (2)需要付费使用

私有地址:(1)本地唯一性 (2)无需付费使用

子网掩码标识网络ID和主机ID,1为网络位

触发进程撤销

一个进程在完成其任务后应给予撤销,以便及时释放它所占有的各类资源。引起进程了撤销的事件大致有以下几类:
1、进程正常结束,到一个进程完成其任务后,应该将其撤销并释放其所占有的资源。
2、进程异常结束,在进程运行期间,如果出现了错误或故障,则进程被迫结束运行,导致进程异常结束的事件较多,如运行超时,内存不足。越界错误,I/O故障算数运算错误的。
3、外界干预进程用外界的干预而被迫结束运行,外界干预包括操作人员或操作系统的干预,如为了解除死锁,操作人员或操作系统要求撤销进程,当父进程终止时,操作系统会终止子孙进程。父进程有权请求系统终止其子孙进程

控制结构task_struct

什么是PCB
PCB:process ctrl block(进程控制块)
在操作系统代码当中是一个结构体:struct task_struct{…}
进程可以有以下几个定义:

一个正在执行的程序。

一个正在计算机上执行的程序实例。

能分配给处理器并由处理器执行的实体。

一个具有以下特征的活动单元:一组指令序列的执行、一个当前状态和相关的系统资源集合。

也可以把进程当成由一组元素组成的实体,进程的两个基本元素是程序代码(可能被执行相同程序的其他进程共享)和与代码相关联的数据集。假设处理器开始执行该程序代码,且我们把这个执行实体称为进程。在进程执行时,任意给的一个时间,进程都可以唯一地被表征为以下元素:
标识符:跟这个进程相关的唯一标识符,用来区别其他进程。
状态:如果进程正在执行,那么进程处于执行状态。
优先级:相对于其他进程的优先级。
程序计数器:程序中即将被执行的下一条指令的地址。
内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
上下文数据:进程执行时处理器的寄存器中的数据。
I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备(如磁带驱动器)和被进程使用的文件列表。
审计信息:可包括处理器时间总和,使用的时钟数总和,时间限制,审计号等。

每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,在Linux下内核的进程控制块就是task_struct结构体。

task_struct结构体是Linux内核中的一种数据结构,接下来就进入本文的重点:剖析task_struct结构体
(1)进程的标识 PID(process identifier):
pid_t pid;//进程的唯一标识
pid_t tgid;// 线程组的领头线程的pid成员的值

(2)进程的状态 volatile long state
state的可能取值是:
#define TASK_RUNNING 0//进程要么正在执行,要么准备执行
#define TASK_INTERRUPTIBLE 1 //可中断的睡眠,可以通过一个信号唤醒
#define TASK_UNINTERRUPTIBLE 2 //不可中断睡眠,不可以通过信号进行唤醒
#define __TASK_STOPPED 4 //进程停止执行
#define __TASK_TRACED 8 //进程被追踪

#define EXIT_ZOMBIE 16 //僵尸状态的进程,表示进程被终止,但是父进程还没有获取它的终止信息,比如进程有没有执行完等信息。
#define EXIT_DEAD 32 //进程的最终状态,进程死亡

#define TASK_DEAD 64 //死亡

#define TASK_WAKEKILL 128 //唤醒并杀死的进程

#define TASK_WAKING 256 //唤醒进程

(3)进程的优先级 long priority

Priority的值给出进程每次获取CPU后可使用的时间(按jiffies计)。优先级可通过系统sys_setpriorty改变(在kernel/sys.c中)。

程序计数器:程序中即将被执行的下一条指令的地址。

内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。
前述的列表信息被存放在一个称为进程控制块(PCB)的数据结构中,该控制块由操作系统创建和管理

贪心算法求活动安排问题(使用贪心算法求得的最大相容活动子集为)

等值连接

等值连接也称为显示内连接,在进行多表联合查询时通过“=”等号来连接多张表之间相字段对应的值,其产生的结果会出现重复列。意思是,如果对多张表进行等值连接操作,那么前提要求是这多张表之间必须有相同的字段名。课程表和学生课程中间表均有相同的“cnum”字段,学生表与学生课程中间表均有相同的“snum”字段。
【2022.8.28】笔试记录_第1张图片

chmod命令用来设定文件的权限

你可能感兴趣的:(面试)