【面试八股文之Linux系统编程】

本文详细介绍了Linux中常用的命令,区分了进程、线程和协程的概念,并探讨了多进程和多线程的使用场景、进程间通信的方式,包括管道、消息队列、共享内存等,以及线程同步互斥的实现。同时讲解了死锁的定义、产生条件和解决策略,以及使用fork和vfork创建进程的区别。

1.Linux中你常用的命令有哪些?

        ls:列出当前目录下的文件和目录。

·       cd [目录]:切换到指定的目录。

        pwd:现实当前工作目录的路径。

        touch[文件名]:如果文件不存在,新建文件。

        mkdir[目录名]:创建新的目录;

        rm[文件名]:删除指定的文件或目录。

  cp [源文件] [目标文件]:复制文件。

  mv [源文件] [目标文件]:移动或重命名文件。

  cat [文件名]:查看文件内容、创建文件、追加文件内容等功能。

  more [文件名]:分屏显示文件内容。

  grep [word] [文件名]:在文件中搜索指定的文本。

  date:查看或设置系统时间。

  cal:显示日历。

  df:显示磁盘剩余空间。 

  ps:查看当前进程的状态。

  top:动态显示运行中的进程并排序。

  kill [进程ID]:结束指定的进程。

2. 进程、线程、协程是什么?有什么区别?

        (1)进程:进程是操作系统进行资源分配和调度的一个独立单位,是程序执行的实例。每个进程都有自己的独立内存空间和系统资源。进程是程序资源管理的最小单位

        (2)线程:线程是进程中的一个执行单元,也是处理器任务调度和分派的基本单位。一个进程可以包含多个线程,所有线程共享进程的资源,如内存空间和文件描述符等。线程是资源调度的最小单位

        (3)协程:协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态。

        区别:进程和线程的主要区别在于它们的内存空间:进程有自己独立的地址空间,每启动一个进程,系统就会为它分配地址空间,一个进程无法直接访问另一个进程的变量和数据结构,需要通过进程间通信IPC机制(如管道、消息队列、共享内存等)来实现;而同一进程下的所有线程共享同一地址空间和系统资源。

                    线程和协程的主要区别在于协程的调度由用户自己控制,而线

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放牛的守护神_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值