
操作系统基础(Linux)
文章平均质量分 81
操作系统的基础知识
坚持学习.
天行健,君子以自强不息;地势坤,君子以厚德载物
展开
-
Linux————系统调用与库函数
库函数:库函数用于提供用户态服务,在用户态用户自己实现的方法。它可能调用封装了一个或几个不同的系统调用(printf调用write),也可能直接提供用户态服务(atoi不调用任何系统调用)。系统调用:1、基本概念及内容:所谓系统调用就是用户在程序中调用操作系统所提供的一些子功能(内核实现的一些方法),系统调用可以被看做特殊的公共子程序。系统中的各种共享资源都由操作系统统一掌管,因此在用户程...原创 2021-08-13 21:13:20 · 630 阅读 · 0 评论 -
Linux系统编程————进程的基础概念及其创建(fork)
进程是系统分配资源的基本单位。原创 2019-08-13 11:57:16 · 341 阅读 · 1 评论 -
Linux系统编程————线程及其相关函数
一、线程相关概念:什么是线程: 1>线程就是进程的一条执行路径,每一个进程都有一条线程,称之为主线程。 2>在Linux系统下:线程就是轻量级的进程; 3>在Linux内核看来,线程就是进程;因为linux系统早期是没有线程概念的,只有pcb表示的进程,而在后来发展中,程序员用进程的方式封装了线程,所以每个线程都有独立的p...原创 2019-08-11 17:06:03 · 405 阅读 · 1 评论 -
Linux系统编程————线程同步之互斥锁
什么是线程同步 首先我们说一个生活中的现象来类比线程同步,城市的每个十字路口都会设置有红绿灯,设置红绿等的作用就是为了让十字路口这个资源在一定时间内,只能被一个方向往来的车辆使用,以避免交通事故的发生,我们就可以理解为十字路口被同步了;这样我们就可以将这个例子类比到我们的线程同步,十字路口的红路灯就相当于我们的同步机制(互斥锁),东西、南北方向的行车就相当于两一条线程。 ...原创 2019-08-14 22:08:05 · 277 阅读 · 0 评论 -
Linux操作系统下git的使用方法
Linux命令行下使用GitHub:注册GitHub账号和Linux系统下的git安装这里就不说了,直接演示在Linux系统下如何使用git命令。第一部分:创建SSH密钥1、在本地创建与你的帐户关联的SSH密钥;2、找到存在于.ssh目录下id_rsa.pub文件中的ssh密钥;3、将刚才找到的密钥添加到GitHub云端的SSH密钥列表里;4、测试一下刚才...原创 2019-08-06 22:29:20 · 814 阅读 · 1 评论 -
Linux系统编程————进程间通信--管道
管道分为有名管道和无名管道。原理: 内部实现是环形队列,遵循先进先出的原则。 环形队列的头和尾是相对的,可以移动,可以保证读取的效率。 比如原队头的数据被读出,对头就会向后移,后写入的数据就会覆盖掉原队头。特点: 分为读端和写端,数据从写端流入,读端流出; 管道是半双工通信,数据只能在一个方...原创 2019-07-31 18:21:09 · 171 阅读 · 0 评论 -
Linux系统编程————守护进程
守护进程: 独立于控制终端,在后台周期性的执行某些操作的进程。特点: 不受用户登录/注销影响; 一般采用以d结尾的名字。作用: 1、避免进程在执行过程中的信息在任何终端上显示; 2、避免进程被任何终端所产生的终端信息所打断。 通俗的说就是,想让某个进程不因为用户或终端或其他的变化而受到影...原创 2019-08-04 20:12:26 · 233 阅读 · 0 评论 -
Linux系统编程————exec进程替换
exec函数族:进程替换函数1、何为进程替换:1、让父子进程执行不相干的操作;也就是说,在一个运行的程序a中,调用另外的应用程序b。2、换核不换壳;exec族函数,能够替换进程地址空间中的代码段.text段(对应的堆、栈中的数据都会改变),重新填充新的代码。2、函数原型:execl系列是变参函数int execl(const char* path,const char* ...原创 2019-07-25 21:20:16 · 323 阅读 · 0 评论 -
Linux系统编程————wait进程回收
进程回收 进程回收函数wait只要是为了防止出现僵尸进程进程回收函数:wait(阻塞函数)函数原型:pid_t wait(int* status); 返回值: =-1:返回失败,已经没有子进程了; >0:回收的是子进程对应的pid。参数:判断子进程是如何死的(正常退出/被信号杀死) 正常结束: ...原创 2019-07-30 21:08:50 · 234 阅读 · 0 评论 -
Linux系统编程————孤儿进程与僵死进程
孤儿进程父进程先于子进程结束,子进程则称为孤儿进程。原因: 1、进程结束后,都会释放自己所占的用户空间; 2、但是进程的pcb必须由父进程来释放; 3、孤儿进程被系统进程init领养,释放孤儿进程的pcb。孤儿进程例子:int main()//孤儿进程{ pid_t pid; pid = fork(); i...原创 2019-07-30 20:57:32 · 238 阅读 · 0 评论 -
Linux系统编程————进程间通信--共享内存
共享内存又称内存映射什么是共享内存 共享内存就是多个进程将一块物理内存分别映射到自己的虚拟空间地址上,最终实现多个进程共享同一块物理内存。创建共享内存/内存映射区: mmap———创建内存映射 作用:将磁盘文件映射到内存,用户通过修改内存就能修改磁盘文件,mmap既可以单纯的操作文件,也可以进行进程间通信。 函数原...原创 2019-08-02 21:57:48 · 187 阅读 · 0 评论 -
Linux系统编程————信号与信号量的区别
这两个名词只有一字之差,所以有时候我们会很容易联想到这两个东西是不是一个东西,然而他们却是完全不同的两个概念。今天在复习时,看到这两个概念时,发现自己已经将这两个概念混为一谈了……信号:是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。 信号量:信号量是一个特殊的变量,它的本质是计数器,信号量里面记录了临界资源的数目,有多少数目,信号量的值就为多少,进程...原创 2019-04-27 22:43:48 · 8915 阅读 · 1 评论 -
Linux常用命令的用法(二)————文本编辑器命令vi/vim
sed介绍awk介绍vi/vim介绍原创 2019-04-08 21:59:38 · 1348 阅读 · 1 评论 -
Linux常用命令的用法(一)————文件操作篇
一、基础操作1、cd:进入目录文件执行权限:所有用户用法1:cd +目录名 示例1:cd command用法2:cd + /路径/目录名示例2:cd /home/stu/aaa2、touch: 创建普通文件执行权限:所有用户用法:touch + 文件名示例:touch a.c3、mkdir: 创建目录文件执行权限:所有用户用法:mkdir + 目录名示例:mkd...原创 2018-11-30 17:08:24 · 289 阅读 · 0 评论