![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 72
Tanswer_
纸上得来终觉浅,绝知此事要躬行!
展开
-
Linux启动流程分析
Linux系统从启动到提供服务的过程是这样,先是机器加电,然后通过MBR或者UEFI加载GRUB,再启动内核,内核启动服务,然后开始对外服务。步骤:加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备(比如硬盘);读取并执行第一个开机装置内MBR 的boot Loader (即grub2, spfdisk 等程序);依据boot loader 的设置加载Kernel ,Ke原创 2017-03-02 12:33:49 · 1463 阅读 · 0 评论 -
linux文件权限和访问模式
一.linux为不同的文件赋予了不同的权限,每个文件都有下面三种权限:1.所有者权限:文件所有者能够进行的操作2.组权限:文件所属用户组能够进行的操作3.外部权限:其他用户能够进行的操作二.查看文件权限使用 ls -l 命令来查看与文件权限相关的信息,如下:$ls -l /home/amrood-rwxr-xr-- 1 amrood users 1024原创 2016-05-31 19:34:28 · 1208 阅读 · 0 评论 -
进程同步与互斥笔记
1、进程之间的两种相互制约关系(1)间接相互制约关系(互斥关系)同处于一个系统中的进程,通常都共享着某种资源,如共享CPU、共享I/O设备等,所谓间接相互制约即源于这种资源共享,使系统中本来没有关系的进程因竞争资源产生了制约关系。(2)直接制约关系(同步关系)这种制约主要源于进程间的合作。比如输入、计算、输出。在运行过程中,某进程可能要在某些同步点上等待另一伙伴(协作进程)为它提供消息,在未获得消息原创 2017-03-16 23:36:19 · 5063 阅读 · 7 评论 -
进程间通信--管道、消息队列
我们学习高级进程通信,指用户可直接利用操作系统所提供的一组通信命令高效地传送大量数据的一种通信方式。 进程间通信的几种主要手段:管道、消息队列、共享内存、套接字管道管道,指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件,只存在于内存中,是一种两个进程间进行单向通信的机制。在创建管道时,系统为管道分配一个页面作为数据缓冲区,通过管道通信的两个进程通过读写这个缓冲区来进程通信,写在缓冲原创 2017-04-16 13:42:11 · 1573 阅读 · 1 评论 -
PV原语小结及进程同步示例
信号量S的物理含义 S>0:表示有S个资源可用;S=0表示无资源可用;S<0绝对值表示等待队列或链表中的进程个数。信号量的初值应大于等于0。PV原语小结 通过操作信号量来处理进程间的同步与互斥的问题。其核心就是一段不可分割不可中断的程序。 信号量是由操作系统来维护的,用户进程只能通过初始化和两个标准原语(P、V原语)来访问,它们在执行时是不可中断的。初始化可指定一个非负整数,即空原创 2017-05-02 21:22:06 · 6993 阅读 · 3 评论 -
OS进程调度及典型调度算法
进程调度的功能记录系统中的所有进程的状态、优先级数和资源的需求情况确定调度算法,决定将CPU分配给哪个进程多少时间分配处理机给进程,进行CPU现场的保护和移交调度的层次一个作业从提交开始直到完成,往往要经历以下三级调度,如图所示。作业调度。又称高级调度,.其主要任务是按一定的原则从外存上处于后备状态的作业中挑选一个(或多个)作业,给它(们)分配内存、输入/输出设备等必要的资源,并建立相应的原创 2017-05-03 21:11:07 · 4221 阅读 · 1 评论 -
I/O知识点汇总
I/O设备分类:按使用特性 人机交互类外设:打印机、显示器、鼠标、键盘等 存储设备:磁盘、磁带、光盘等 网络通信设备:网络接口、调制解调器等按传输速率分类 低速设备:每秒几个到数百个字节(< KB/s),如键盘、鼠标 中速设备:每秒数千个字节至数万个字节,如激光打印机 高速设备:数百个千字节至千兆字节(>100 KB/s),如磁带机、光盘机信息交换的单位分类 块设备:信息的存取以原创 2017-06-03 14:45:34 · 3063 阅读 · 4 评论 -
栈与调用惯例
进程内存布局每个进程分配的内存由很多部分组成,通常称为“段”。 1.文本段:包含了进程运行的程序二进制机器语言指令,只读,可共享,因为多个进程可同时运行同一程序; 2.初始化数据段:包含显式初始化的全局变量和静态变量; 3.未初始化数据段:也称为BSS段,包含未进行显示初始化的全局变量和静态变量。为什么分开放呢?主要原因在于程序在磁盘上存储时,没有必要为未经初始化的变量分配存储空间,相反可执行原创 2017-03-28 21:28:26 · 1299 阅读 · 1 评论 -
内存管理之用户空间
32 位的平台上,线性地址空间为固定的 4GB,并且由于采用了保护机制,Linux内核将这 4GB 分为两部分,线性地址较高的 1GB(0xC0000000 到 0xFFFFFFFF )为共享的内核空间;而较低的 3GB 为每个进程的用户空间。由于每个进程都不能直接访问内核空间,而是通过系统调用间接进入内核,因此所有的进程都共享内核空间。而每个进程都拥有各自的用户空间,各个进程之间不能互相访问彼此的原创 2017-12-10 14:47:55 · 1688 阅读 · 0 评论 -
内存寻址之分页机制
写在前面:分页机制完成线性地址到物理地址的转换 80x86 规定分页机制是可选的。分段和分页没有什么必然联系,分段可以说是 Intel 的 CPU 一直保持着的一种机制,而分页只是保护模式下的一种内存管理策略。想开启分页机制,CPU必须工作在保护模式,而工作在保护模式可以不开启分页。分页机制由控制寄存器 CR0 中的 PG 位启用,如PG=1则启用分页机制,把线性地址转换为物理地址;如果PG=0则直原创 2017-12-02 14:51:54 · 5453 阅读 · 2 评论 -
[编译链接装载系列]之聊聊目标文件与ELF格式
编译器编译源代码后生成的文件叫做目标文件,从结构上讲它是已经编译后的可执行文件格式,只是还没有经过链接,其中可能有些符号或有些地址还没有调整。它本身就是按照可执行文件格式存储的,跟真正的可执行文件在结构上稍有不同。目标文件的格式:现在 PC 平台流行的可执行文件格式主要是 Windows 下的 PE( Portable Executable,可移植可执行 ) 和 Linux 的 ELF( Execu原创 2017-12-04 20:58:14 · 1297 阅读 · 0 评论 -
[编译链接装载]之静态链接
链接器之所以存在或者产生,基本上是由于程序开发的模块化。这里讲的模块,主要是编译概念上的模块,通常他们按照功能划分,比如一个.c或者.cpp文件就是一个编译单元,就是一个模块,编译后就产生一个.o目标文件。为了最终生成一个可执行文件、静态库或者动态库,就需要把各个编译单元按照特定的约定组合到一起。这里特定的约定指的就是“目标文件格式”,它定义了目标文件、库文件和可执行文件的格式,这里组合这一过程就叫原创 2017-12-06 15:38:25 · 1207 阅读 · 1 评论 -
Linux交换空间(swap space)
每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识。下面的所有例子都在ubuntu-server-x86_64 16.04下执行通过什么是swap?swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说...转载 2018-06-23 18:18:46 · 16090 阅读 · 0 评论 -
进程的概念、表示、调度状态和进程的控制
进程概念的引入进程的概念:进程是程序的一次执行;进程是可以和别的计算器并发执行的计算;可定义为一个数据结构及能在其上进行操作的一个程序;一个程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上的运行过程﹐是系统进行资源分配和调度的一个独立单位。 综合定义为﹕可并发执行的程序在一个数据集合上的运行过程,是系统进行资源分配和调度的独立单位。进程的表示和调度状态进程的表示:通原创 2017-03-15 23:47:53 · 3511 阅读 · 0 评论 -
linux网络通信工具
ping命令 Linux系统ping命令是常用的网络命令,用来测试网络的连通性,向网络上的主机发送应答请求,根据响应信息可以判断远程主机是否可用 。ping命令通过将 icmp 回显数据包发送到计算机并侦听回显回复数据包来验证与一台或多台远程计算机的连接,该命令只有在安装了 tcp/ip 协议后才可以使用。通常我们打不开网页时就会说”ping 一下”。语法:ping [参数] [原创 2016-10-20 17:51:23 · 1978 阅读 · 0 评论 -
linux 两个装逼的命令
1.ls 是我们最常用的命令了,但是偶尔会输入错误变成 sl,其实sl也是一个好玩的命令安装: sudo apt-get install sl$sl$sl-h 连续不断的跑2.linuxlogo$sudo apt-get install linuxlogo$linuxlogo -L ubuntu如图:更多样式请看$lin原创 2016-06-29 21:29:31 · 8737 阅读 · 5 评论 -
认识EXT2文件系统
硬盘组成整块磁盘的组成主要有:圆形的盘片(主要记录数据的部分);机械手臂与机械手臂上的磁头(可读写盘片上的数据);主轴马达,可以转动盘片,让机械手臂的磁头在盘片上读写数据。盘片上的物理组成:扇区(sector)为最小的物理存储单位,每个扇区为512bytes;将扇区组成一个圆,那就是柱面,柱面是分区的最小单位; 第一个扇区重要i,里面有硬盘主引导记录(MBR,446字节)及分区表(partitio原创 2017-03-04 15:02:17 · 1273 阅读 · 0 评论 -
操作系统发展史总结
一:无操作系统1.手工 特点:(1)用户独占全机(2)CPU等待人工操作 问题:(1)计算机处理能力低(2)计算机工作效率低 2.脱机输入/输出方式 特点:数据的输入输出是在脱离主机的控制下完成的,通常是在外围机的控制下完成的 优点:(1)减少了CPU的空闲时间,缓和了人机矛盾(2)提高了I/O速度二:单道批处理系统—晶体管特点:利用磁带将若干个作业分类编成作业执行序列,每个批作业由一个专原创 2017-03-14 23:13:00 · 8268 阅读 · 0 评论 -
linux 特权级 用户态 内核态
1、特权级Intel x86架构的cpu一共有0~4四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查。硬件已经提供了一套特权级使用的相关机制,软件自然要好好利用,这属于操作系统要做的事情,对于UNIX/LINUX来说,只使用了0级特权级别和3级特权级。也就是说在UNIX/LINUX系统中,一条工作在0级特权级的指令具有了CPU能提供的最高权力,而一条工作在3转载 2016-07-29 11:46:19 · 4026 阅读 · 0 评论 -
进程的状态
三态模型运行状态当一个进程在处理机上运行时,则该进程处于运行状态。处于次状态的进程的数目小于等于处理器的数目,在单处理系统中,处于运行态的进程只有一个。就绪状态当一个进程获得了除CPU以外的任何资源,一旦获得CPU,便可立即执行,则该进程处于就绪状态。一个系统中处于就绪状态的进程可能有多个,通常它们按优先级排成一个队列,称为就绪队列。阻塞状态正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃处原创 2016-07-30 10:11:45 · 2263 阅读 · 0 评论 -
进程 写时复制 分页管理
写时复制 分页管理 进程创建 相关概念原创 2016-07-30 23:41:17 · 957 阅读 · 0 评论 -
linux文件管理
一.查看文件ls -l //查看当前目录下所有文件信息$ls -ltotal 1962188drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml-rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpgdrwxr-xr-x 2 amrood amroo原创 2016-06-05 16:23:01 · 638 阅读 · 0 评论 -
open系统调用
open系统调用#include #include #include int open(const char *path,int oflags);int open(const char *path,int oflags, mode_t mode);简单的说,open建立了一条到文件或设备的访问路径,如果调用成功,它将返回一个可以被read,wri原创 2016-07-25 11:38:50 · 1377 阅读 · 0 评论 -
Linux 系统 CPU 使用率简单分析
CPU 使用率是单位时间内 CPU 使用情况的统计,以百分比的方式展示。CPU 使用率为了维护 CPU 时间,Linux 通过事先定义的节拍率(内核中表示为 HZ),触发时间中断,并使用全局变量 Jiffies 记录了开机一来的节拍数。每发生一次时间中断,Jiffies 的值就加 1。Linux 通过 /proc 虚拟文件系统,向用户空间提供了系统内部状态的信息,而 /proc/stat 提...原创 2018-12-14 21:59:45 · 4058 阅读 · 0 评论