系统操作
关于unix高级编程的一些知识
东东7_7
这个作者很懒,什么都没留下…
展开
-
shell脚本
前言用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。基本概念脚本就是一些命令的集合,通常有选择,控制,循环三种方式# 使用#做注释#! /bin/bash //指定使用脚本那命令。。。写完这些以后需要增加执行权限,如chmod 777 3.cshell中的变量shell和c不一样,他不是一种强类型的语言,他直接可以进行赋值value=“11111”value=1位置变量就是类似于main函数的传参,位置分分别为0,1,2,3原创 2021-02-19 21:46:32 · 103 阅读 · 0 评论 -
进程间通信———共享内存
前言共享内存作为进程间通信最快的方式,,我们有必要将他来深入学习一下定义共享内存,就是允许两个不想关的进程访问同一个逻辑内存注:共享内存没有提供同步机制,所以我们通常使用信号量来控制共享内存的读写共享内存的通信原理借鉴https://blog.csdn.net/ypt523/article/details/79958188在Linux中,每个进程都有属于自己的进程控制块(PCB)和地址空间(Addr Space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管原创 2020-10-13 21:49:17 · 464 阅读 · 0 评论 -
面向linux方向的面试总结
进程和线程的区别线程是属于进程的,所以说线程是一个轻量级的进程进程是资源分配的最小单位,线程是CPU调度的最小单位进程拥有自己独立的空间,而线程则是共享他的储存空间(堆存储,数据段和代码段),但是拥有自己独立的栈段系统开销,进程的系统开销较大,在创建进程的时候进程的时候,系统都要为他分配和回收资源,而且切换的时候需要CPU的帮助,而线程只是需要一些寄存器的帮助,并不牵扯存储器通信:进程的通信需要IPC,同步互斥等方式来实现通信,而线程由于共享内存空间,他们的同步和通信变得容易进程之间不会相互影原创 2020-09-25 09:54:19 · 95 阅读 · 0 评论 -
exec函数族
前言exec函数族提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。另外,这里的可执行文件既可以是二进制文件,也可以是Linux下任何可执行的脚本文件 ----《百度百科》这也是在linux的世界中,其实就是由一个init进程创建,之后通过fork进行克隆之后,再由exec函数族替换来形成的一个体系作用在一个进程没有作用的时候,可以用exec原创 2020-07-09 10:54:37 · 134 阅读 · 0 评论 -
进程间的通信
前言文件之间的通信在我们linux中有着很高的地位,我们在服务器的通信中都要用到这些有名管道管道是一个半双工的模式,但是一般都当单工用,只能在一端读,一端写,不能同时进行,读写都是在内存上进行同样的,有名管道只能用在有亲缘关系之间的进程,这也是为什么没有名字int pipe(int pipefd[2]);参数是传入一个数组,一般我们都是认为0为读,1为写成功返回0 失败返回0,设置e...原创 2020-03-31 22:03:16 · 120 阅读 · 0 评论 -
进程调度的控制—文件锁
前言在进程之间,我们不能决定应该先去调度哪一个进程,这时候我们就需要对一个文件加锁,来要求那个先来执行整体文件锁int flock(int fd, int operation);fd :文件描述符operation:定义的宏,也就是选项LOCK_SH 共享锁 多个进程可以拥有该锁LOCK_EX 独立锁 谁加锁,谁解锁LOCK_UN 解锁...原创 2020-03-31 20:03:46 · 102 阅读 · 0 评论 -
CPU最小的调度单位—线程
前言在多核或多CPU,或支持Hyper-threading的CPU上使用多线程程序设计的好处是显而易见,即提高了程序的执行吞吐率。在单CPU单核的计算机上,使用多线程技术,也可以把进程中负责I/O处理、人机交互而常被阻塞的部分与密集计算的部分分开来执行,编写专门的workhorse线程执行密集计算,从而提高了程序的执行效率。(百度百科)线程定义:线程是一个正在运行的函数,如main线程线程...原创 2019-12-27 16:44:09 · 998 阅读 · 0 评论 -
进程间方便的通信—信号
前言在计算机科学中,信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。信号的定义信号是软件中断,信号的响应依赖于中断,信号会通过去扎内核...原创 2019-12-17 17:31:45 · 231 阅读 · 0 评论 -
进程基本知识
前言进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程是操作系统动态执行的基本单元,对我们学习操作系统有着很关键的作用...原创 2019-10-29 23:01:30 · 246 阅读 · 0 评论 -
文件目录和文件属性的获取
前言学习linxu下的文件属性和目录的获取可以帮助我们更进一步的了解这个系统一切皆为文件的神奇,通过学习我们可以直到这些知识都是伴随着stat函数,xxxdir类型的函数和一些组和时间戳的概念来完成的,最后我们能完成一个类似于ls函数的功能stat函数#include <sys/types.h>#include <sys/stat.h>#include <u...原创 2019-10-17 21:40:04 · 383 阅读 · 0 评论 -
对外的输入与输出—文件IO
前言文件io是操作系统对外封装的一组用户使用的系统函数,他不在文件缓存系统之中在所有io操作过程是中没有缓存区的存在,他是由文件描述符调用的同时文件描述符是从3开始前面的分别是stdin,stdout,stderr文件io的打开#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>...原创 2019-09-22 17:03:36 · 168 阅读 · 0 评论 -
高速带缓存的标准io
前言Linux中,一切皆文件。文件为操作系统服务和设备提供了一个简单而一致的接口。这意味着程序完全可以像使用文件那样使用磁盘文件、串行口、打印机和其他设备。也就是说,大多数情况下,你只需要使用5个函数: open、close、read、write和ioctl。 例外的情况: 目录的读写,网络连接等特殊文件IO的定义IO的意思就是输入和输出(intput output),分为IO设备和IO接...原创 2019-09-17 13:06:14 · 500 阅读 · 0 评论