Linux/操作系统
灵魂胖子
这个作者很懒,什么都没留下…
展开
-
Linux C 编程基本原理
Makefile编写main函数的返回值main函数参数Linux的标准输入流、标准输出流、标准错误流 stdout 标准输入流: 0 默认键盘 stdin 标准输出流: 1 默认终端 stderr 标准出错流:2 输出流重定向:输入流重定向:标准错误流:标准错误流重定向:管道:grep:从文本文档里查询包含指定字符的行。 给出任意...原创 2018-03-11 22:16:03 · 245 阅读 · 0 评论 -
页面置换算法
页面置换算法1、先进先出置换(FIFO)算法(队列)选择最先进入内存的页换出。即选择在内存中驻留时间最久的页面予以淘汰。2、最近最久未使用(LRU)算法(栈)选择离当前时间最久未使用的页面淘汰例:在一个请求分页系统中,假如一个作业的页面走向为1 2 3 4 1 2 5 1 2 3 4 5,计算当分配给该作业的物理块数分别为3和4时,使用FIFO和LRU页面置换算法的缺页次数和缺页率...原创 2018-10-04 16:28:37 · 528 阅读 · 0 评论 -
进程间通信 —— IPC
进程间通信 —— IPC目录:1.管道2.消息队列3.共享内存4.信号量为什么要有进程间通信?每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程 1 把数据从用户空间拷到内核缓冲区,进程 2 再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。进程间通信的目的:...原创 2018-08-24 18:40:22 · 255 阅读 · 0 评论 -
信号
信号目录1、产生信号2、信号的种类3、阻塞信号4、捕捉信号查看系统到底有哪些信号: kill -l 每个信号都有一个编号和一个宏定义名称,这些宏定义可以在 signal.h 中找到。 1)SIGHUP 关闭终端 2)SIGINT Ctrl + C 3)SIGQUIT Ctrl + \ 5)SIGTRAP 从用户空间陷入内核 6)SIG...原创 2018-08-28 17:09:19 · 186 阅读 · 0 评论 -
静态库和动态库
静态库和动态库静态库(.a):程序在编译连接的时候把库的代码链接到可执行文件中。程序在运行的时候将不再需要静态库。动态库(.so):程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。测试程序: 静态库静态库:对一些 .o文件打包//生成方法:ar -cr lib库名.a 文件库文件名都是以lib开头的,静态库以.a作为后缀。//使用:gcc...原创 2018-08-27 18:15:28 · 153 阅读 · 0 评论 -
gcc、gdb的简单使用
gcc、gdb的简单使用目录:编译器 - gcc调试器 - gdb1.编译器 - gcc(1)预处理 -> *.i -E 预处理 -o 指定输出文件名 1)干掉注释 2)宏替换 3)#pragma 不替换 4)加入了很多行号信息,用于报错和警告使用file 查看文件类型 (2)编译 -> *.s 把预处理后C的代码...原创 2018-08-27 15:46:13 · 2058 阅读 · 0 评论 -
进程
进程目录1.进程概念2.进程状态3.进程创建4.进程终止5.进程等待6.进程程序替换7.进程优先级8.环境变量 1.进程概念程序:为了完成特定任务的一系列指令的有序集合 进程:程序的一次动态执行过程每个进程都有自己的状态每个进程都有自己的虚拟地址空间进程是操作系统分配资源的基本单位进程控制块(PCB):进程标识符pid、程序状态字、寄存器信息...原创 2018-08-22 14:58:48 · 154 阅读 · 0 评论 -
线程
线程目录:线程控制创建线程终止线程线程等待和分离线程间同步Mutex(互斥锁)条件变量POSIX信号量读写锁由于同一进程的多个线程之间共享同一地址空间,因此它的代码段和数据段都是共享的。除此之外,各线程还共享进程资源和环境。文件描述符表每种信号的处理方式(SID_IGN、SIG_DFL或者自定义的信号处理函数)当前工作目录用户id和组id但有些...原创 2018-08-26 16:18:29 · 150 阅读 · 0 评论 -
Linux常用基本命令
Linux常用基本命令命令格式: 命令 -选项 参数 例: ls -la /etc说明:1)当有多个选项时,可以写在一起 2)两个特殊的目录 . 和 .. ,分别代表当前目录和当前目录的父目录。 . 开头的文件属于隐藏文件 文件处理命令 命令名称:ls命令英文原意:list命令所在...原创 2018-06-12 22:24:22 · 165 阅读 · 0 评论 -
僵尸进程与孤儿进程
僵尸进程与孤儿进程 在unix/Linux系统中,大多数情况下,子进程是通过父进程fork创建的。(注:系统调用fork,它调用一次,返回两个值,失败返回-1,成功时在子进程返回0,父进程返回所创建子进程的Pid) 子进程创建后,子进程的结束和父进程的运行是一个异步过程。也就是说父进程没办法探测子进程什么时候结束。当一个子进程完成它的工作终止之后,其父进程需要调用wait()或...原创 2018-05-13 11:05:02 · 220 阅读 · 0 评论 -
磁盘的驱动调度算法
磁盘的驱动调度算法磁盘是可供多个进程共享的设备,由于磁盘是串行I/O,当有多个进程要求访问磁盘时,应采用一种调度算法,以使各进程对磁盘的平均访问时间尽可能的少。磁盘调度的目标:是磁盘的平均寻道时间最少常用的调度算法有:先来先服务FCFS:根据进程请求访问磁盘的先后次序进行调度最短寻道时间优先SSTF:要求访问的磁道与当前磁头位置距离最近最短寻道时间优先SSTF:要求访问的磁道与当前...原创 2018-10-04 17:01:20 · 4177 阅读 · 0 评论