操作系统

说说什么是进程?什么是线程?区别?

进程是系统进行资源分配调度的基本单位。

线程是是进程划分的任务,是一个进程内可调度的实体,是CPU调度的基本单位,用于保证程序的实时性,实现进程内部的并发。线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。

区别:

1.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。

2.进程在执行过程中拥有独立的地址空间,而多个线程共享进程的地址空间。(资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量。)

3.进程是资源分配的最小单位,线程是CPU调度的最小单位。

4.通信:由于同一进程中的多个线程具有相同的地址空间,使它们之间的同步和通信的实现,也变得比较容易。进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信(需要一些同步方法,以保证数据的一致性)。

5.进程编程调试简单可靠性高,但是创建销毁开销大;线程正相反,开销小,切换速度快,但是编程调试相对复杂。

6.进程间不会相互影响;一个进程内某个线程挂掉将导致整个进程挂掉。

7.进程适应于多核、多机分布;线程适用于多核

说说 linux 系统下 文本编辑常用的命令有哪些?

有命令模式、输入模式、底线命令模式

面试官:说说 linux 系统下 文本编辑常用的命令有哪些? | web前端面试 - 面试官系列 (vue3js.cn)

说说你对 linux 用户管理的理解?相关的命令有哪些?

linux是一个多用户的系统,允许不同的用户同时登陆主机并使用主机的资源。涉及到权限问题。

用户与用户组

Linux以 “用户与用户组” 的概念,建立用户与文件权限之间的联系,保证系统能够充分考虑每个用户的隐私保护,很大程度上保障了 Linux 作为多用户系统的可行性

从文件权限的角度出发,“用户与用户组” 引申为三个具体的对象:

文件所有者:文件的创造者

用户组成员:将 “其他用户” 区分为用户组成员和其他人后,若文件所有者希望对部分用户开放权限,而对其他人继续保持私有,则只需要将这部分用户与文件所有者划入一个用户组。这样,这部分用户就成了与文件所有者同组的用户组成员。用户可以对用户组成员开放文件权限,用户组成员则具备了查看、修改文件的权限,而对其他无关用户保持私有

其他人:与文件所有者没有任何联系的其他用户

用户操作:

新增用户

设置密码

修改用户

删除用户

新增用户组

修改用户组

删除用户组

说说你对输入输出重定向和管道的理解?应用场景?

linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0、1、2:

STDIN 是标准输入,默认从键盘读取信息

STDOUT 是标准输出,默认将输出结果输出至终端

STDERR 是标准错误,默认将输出结果输出至终端

重定向就是把本来要显示在终端的命令结果,输送到别的地方,分成:

输入重定向:流出到屏幕如果命令所需的输入不是来自键盘,而是来自指定的文件

输出重定向:命令的输出可以不显示在屏幕,而是写在指定的文件中

管道就是把两个命令连接起来使用,一个命令的输出作为另一个命令的输入

两者的区别在于:

管道触发两个子进程,执行 | 两边的程序;而重定向是在一个进程内执行。

管道两边都是shell命令

重定向符号的右边只能是Linux文件

重定向符号的优先级大于管道

#二、命令

你可能感兴趣的:(操作系统)