操作系统
文章平均质量分 81
audience_fzn
这个作者很懒,什么都没留下…
展开
-
Linux——权限的概念
一、Linux下有俩种用户:1.超级用户(root):在Linux下可以干任何事,不受限制2.普通用户(user):在Linux下做有限的事超级用户的命令提示符是“#”,普通用户的命令提示符是“$”切换俩种用户的命令:su1.从user切换到root: su root(root可以省略)2.从root切换到user:su user二、Linux权限管理:文件访问者的分类(人):1.文件和文件目录的...原创 2018-06-18 14:16:47 · 302 阅读 · 0 评论 -
进程间通信——管道
进程间通信进程间通信的目的:数据传输:一个进程需要将它的数据发生给另一个进程 资源共享:多个进程之间共享同样的资源 通知事件:一个进程需要向另一个或一组进程发生消息,通知他发生了某种事件(如进程终止时要通知父进程) 进程控制:有些进程行为完全控制另一个进程的执行,此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时找到人的状态变化相关名词解释:数据不一致:读写双方共同...原创 2018-08-16 18:23:12 · 363 阅读 · 0 评论 -
文件相关系统调用,文件描述符
1.open函数:函数原型:#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>int open(const char *pathname,int flaos);int open(const char *pathname,int flaos,mode_t mode);...原创 2018-08-15 10:19:06 · 333 阅读 · 0 评论 -
浅析文件系统
文件系统:Linux提供了层次结构的目录和文件,文件系统将磁盘划分为每1024(或512)个字节为一组的块。编号从0到整个磁盘空间的最大块数当我们使用ls -来查看时,我们发现,除了看到文件名,还能看到文件元数据每行包含7列:模式,硬链接数,文件所有者,组,大小,最后修改事件,文件名 ls -l读取存储咋磁盘上的文件信息,任何显示出来 除了用这个方式来读取,还可以用一个st...原创 2018-08-15 11:09:06 · 311 阅读 · 0 评论 -
浅析软,硬链接
硬链接:通过文件系统,我们知道,真正找到磁盘上文件的并不是文件名,而是inode。但是我们的Linux可以使多个文件名对应于同一个inode创建一个硬链接:ln 源文件名 链接名我们发现abc和bcd指向了同一个inode,inode中记录了文件的所有信息,改动其中一个使,另一个也会被改变 abc和bcd的链接状态完全相同,他们被称为硬链接,内核记录了这个链接数,inode 10...原创 2018-08-15 11:53:12 · 359 阅读 · 0 评论 -
线程的同步与互斥
mutex(互斥量)大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内。这种情况,变量对数单个线程,其他线程无法获得这种变量 但有时候,很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互 多线程并发的操作共享变量,会带来一些问题,因为毕竟不是所有的操作都是原子性的(要么不做,要么全做完,不存在中间时刻)下面写一个程序来说明:...原创 2018-08-13 17:37:14 · 239 阅读 · 1 评论 -
线程控制
线程控制:线程的控制与进程控制不同,由于内核中根本没有写出的概念,因此也就不存在线程相关的“系统调用”,于是大佬在用户层封装了一个线程库,我们就可以在用户层来完成线程的创建,销毁以及其他控制posix线程库:与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都以“pthread_”开头 要使用这些函数库,要提高引入头文件<pthread.h> 链接这些线程函数库时...原创 2018-08-12 20:32:57 · 180 阅读 · 0 评论 -
线程初识
线程初识: 什么是线程?线程是操作系统能够进行运算调度的最小单位 线程包含在进程之中,是进程中的实际运行单位,一切进程至少都有一个执行线程 线程是指进程中的一个单一顺序的控制流 一个进程中可以并发多个线程,每条线程并行执行不同的任务一个程序中的一个执行路线就叫做线程。线程就是一个在进程内部运行的比进程更细致的执行流。其实在Linux下没有真正的线程,所以我们用进程来模拟线程。在CP...原创 2018-08-12 18:37:05 · 173 阅读 · 0 评论 -
进程终止,进程等待
进程终止:进程退出的场景:代码运行完毕,结果正常 代码运行完毕,结果不正常 代码异常终止进程常见的退出方式:1.正常终止:从main()函数返回 调用exit _exit正常终止,可以通过echo $?来查看进程的退出码2.异常退出:ctrl+c,信号终止 代码执行完后,如何得到代码退出的场景?根据程序的退出码,不能根据函数的返回值exit函数...原创 2018-08-12 10:30:49 · 289 阅读 · 0 评论 -
进程创建——fork,vfork
fork()函数:在Linux中fork函数是一个非常重要的函数,它从已存在的进程中创建一个新的进程,而新进程位子进程,原进程位父进程函数原型:#include<unistd.h>pid_t fork(viod);返回值:成功子进程中返回0,父进程返回子进程的id,出错返回-1调用fork函数:进程调用fork,当控制转移到内核中的fork代码后,内核会做...原创 2018-08-11 11:27:25 · 196 阅读 · 0 评论 -
程序的地址空间
研究背景:32位平台计算机物理内存的大小是固定的,就是计算机主板内存槽上的实际物理内存,cpu可以直接进行寻址,物理内存的容量是固定的,但是寻址的空间取决于cpu地址线的数量。在32位系统上,线性地址空间可达4G(2^32);这4G一般是按照3:1的比例进行分配,用户进程享有3G的空间,而内核独自享有剩下的1G内存早期的内存分派方式:最早的时候,计算机还没有虚拟机制,程序指令所...原创 2018-08-10 20:18:08 · 10749 阅读 · 0 评论 -
僵尸进程,孤儿进程
Z(zombie)——僵尸进程僵尸状态是一个比较特殊的状态,当进程退出并且父进程没有读取到子进程退出的返回代码时,就会产生僵尸进程 僵尸进程会以终止状态保持在进程表中,并且一致在等待父进程读取退出状态代码 所以,子进程退出,但是父进程没有读取子进程状态,子进程加入Z状态 系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁一个僵尸进程...原创 2018-08-10 12:09:37 · 204 阅读 · 0 评论 -
进程初始(二)——进程优先级,环境变量
程序优先级:基本概念:进程在被cpu分配到资源优化才能运行,但是资源是有限的,cpu分配资源的先后顺序,就是进程的优先权 优先权(优先执行的权利)和优先级值不一样,优先权高的进程有优先执行的权力,配置进程优先权对多任务环境的Linux很有用,可以改善系统性能 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU上,可以大大改善系统整体性能可以使用ps -l查看输...原创 2018-08-10 10:20:10 · 287 阅读 · 0 评论 -
初识进程(一)——操作系统,进程管理,进程状态
一、冯诺依曼体系结构目前我们认识的计算机都是由一个个硬件组成输入单元:键盘,鼠标,扫描仪等 输出单元:显示器,打印机 中央处理器(cpu):含有运算器和控制器关于冯诺依曼体系,必须强调几点:存储器是指内存 不考虑缓存的情况,cpu只能对内存进行读写,不能访问外设 外设要输入或输出数据,也只能从内存里读取 所有设备都只能和内存打交道二、操作系统(operate syst...原创 2018-08-09 17:14:59 · 1219 阅读 · 0 评论 -
消息队列
消息队列提供了一个从一个进程向另一个进程发送数据块的方法 每个数据库都被认为是一个类型,接收者进程接收的数据块可以有不同的类型值 消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的,每个消息队列的总的字节数也是有上限的,系统上消息队列的总数也有一个上限消息队列的特点:消息队列是基于消息的,而管道是基于字节流的 消息队列的读取不一定是先入先出 消息队列的生命周期随内核,所以...原创 2018-08-16 20:43:46 · 355 阅读 · 0 评论