操作系统
操作系统
carroll18
你想要拥有你从未有过的东西,你必须去做你从未做过的事情。
展开
-
Linux操作系统之容器化
文章目录容器NamespaceCGroup数据中心操作系统容器容器实现封闭的环境主要要靠两种技术,一种是看起来是隔离的技术,称为namespace(命名空间)。在每个 namespace 中的应用看到的,都是不同的 IP 地址、用户空间、进程 ID 等。另一种是用起来是隔离的技术,称为cgroup(网络资源限制),即明明整台机器有很多的 CPU、内存,但是一个应用只能用其中的一部分。多个容器运行在一台机器上,不会相互影响吗?如何限制 CPU 和内存的使用呢?Docker 可以限制对于 CPU原创 2020-10-17 11:26:04 · 937 阅读 · 0 评论 -
Linux操作系统之虚拟化
文章目录虚拟机CPU 的虚拟化过程存储虚拟化的场景下,整个写入的过程网络虚拟化场景下网络包的发送过程虚拟机虚拟化的本质是用 qemu 的软件模拟硬件,但是模拟方式比较慢,需要加速;虚拟化主要模拟 CPU、内存、网络、存储,分别有不同的加速办法;CPU 和内存主要使用硬件辅助虚拟化进行加速,需要配备特殊的硬件才能工作;网络和存储主要使用特殊的半虚拟化驱动加速,需要加载特殊的驱动程序。CPU 的虚拟化过程首先,我们要定义 CPU 这种类型的 TypeInfo 和 TypeImpl、继承关系原创 2020-08-28 17:36:06 · 867 阅读 · 0 评论 -
Linux操作系统之网络系统
文章目录SocketSocketMAC 地址的定位功能局限在一个网络里面,也即同一个网络号下的 IP 地址之间,可以通过 MAC 进行定位和通信。从 IP 地址获取 MAC 地址要通过 ARP 协议,是通过在本地发送广播包,也就是“吼”,获得的 MAC 地址。应用层和内核互通的机制,就是通过 Socket 系统调用。两者需要跨内核态和用户态通信,就需要一个系统调用完成这个衔接,这就是 Socket。发送数据包在 Linux 服务器 B 上部署的服务端 Nginx 和 Tomcat,都是通过原创 2020-08-28 17:35:25 · 489 阅读 · 0 评论 -
Linux操作系统之进程间通信
文章目录进程间通信的各种模式信号管道IPC(Inter-Process Communication,进程间通信)进程间通信的各种模式管道模型:类似瀑布开发模式的管道消息队列模型:类似邮件模式的消息队列共享内存模型:类似会议室联合开发的共享内存加信号量信号量:类似应急预案的信号信号量其实是一个计数器,主要用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。将信号量初始化为一个数值,来代表某种资源的总体数量。对于信号量来讲,会定义两种原子操作,一个是P 操作,我们称为申请资源操作。原创 2020-08-28 17:33:13 · 651 阅读 · 0 评论 -
Linux操作系统之输入输出系统
输入输出设备我们大致可以分为两类:块设备(Block Device)和字符设备(Character Device)块设备将信息存储在固定大小的块中,每个块都有自己的地址。硬盘就是常见的块设备。字符设备发送或接受的是字节流。而不用考虑任何块结构,没有办法寻址。鼠标就是常见的字符设备。原创 2020-08-28 17:32:34 · 500 阅读 · 0 评论 -
Linux操作系统之文件系统
文章目录文件系统硬盘文件系统虚拟文件系统文件缓存文件系统在规划文件系统的时候,需要考虑到以下几点第一点,文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。第二点,文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置。第三点,如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层。第四点,文件应该用文件夹的形式组织起来,方便管理和查询。第五点,Linux 内核要在自己的内存里面维护一套数据结构,来保存哪些文件被哪些进程打开和使用。不同的原创 2020-08-28 17:31:27 · 645 阅读 · 0 评论 -
Linux操作系统之内存管理
文章目录内存管理进程空间管理物理内存管理用户态内存映射内核态内存映射内存管理操作系统的内存管理,主要分为三个方面第一,物理内存的管理,相当于会议室管理员管理会议室。第二,虚拟地址的管理,也即在项目组的视角,会议室的虚拟地址应该如何组织。第三,虚拟地址和物理地址如何映射,也即会议室管理员如果管理映射表。查看进程内存空间的布局的命令:cat /proc/进程id/maps分段机制的原理分段机制下的虚拟地址由两部分组成,段选择子和段内偏移量。段选择子就保存在咱们前面讲过的段寄存器里面原创 2020-08-28 17:30:48 · 569 阅读 · 0 评论 -
Linux操作系统之进程管理
文章目录进程线程线程的数据进程进程从代码到二进制到运行时的一个过程首先通过图右边的文件编译过程,生成 so 文件和可执行文件,放在硬盘上。下图左边的用户态的进程 A 执行 fork,创建进程 B,在进程 B 的处理逻辑中,执行 exec 系列系统调用。这个系统调用会通过 load_elf_binary 方法,将刚才生成的可执行文件,加载到进程 B 的内存中执行。线程一个普通线程的创建和运行过程线程的数据第一类是线程栈上的本地数据第二类数据就是在整个进程里共享的全局数据:Mutex,原创 2020-08-15 15:19:24 · 315 阅读 · 0 评论 -
Linux操作系统之概述和系统初始化
文章目录文件操作在各个层的数据结构的关联原创 2020-08-15 15:18:43 · 560 阅读 · 0 评论 -
操作系统(八)
文件管理文件存取权限UNIX中的文件存取权限第一级:对访问者的识别对用户分类:文件主(owner)文件主的同组用户(group)其它用户(other)第二级:对操作权限的识别读操作(r)写操作(w)执行操作(x)不能执行任何操作(-)d 目录c 字符设备b 块设备文件属性 rwxr-xr-x 用二进制表示 111101101 ,在UNIX中...原创 2020-02-06 14:35:21 · 212 阅读 · 0 评论 -
操作系统(七)
文件管理研究文件系统两个角度:用户的角度、操作系统的角度文件的分类按文件的用途分类系统文件:操作系统和各种应用程序和数据所组成的文件库函数文件用户文件按文件的组织形式分类普通文件目录文件特殊文件按文件中的保护方式分类只读文件、读写文件、可执行文件、无保护文件等按照文件的组织结构分类逻辑文件:流式文件、记录式文件等物理结构:顺序文件、链接文件和索引文件等UNIX操作系...原创 2020-02-05 22:08:42 · 239 阅读 · 0 评论 -
操作系统(六)
存储管理方案地址的转换和快表页号 = 逻辑地址/页长页内地址 = 逻辑地址 % 页长物理地址 = 块号*块长 + 块内地址 + 用户区基址 (块内地址 = 页内地址)页表(1)多级页表(2)散列页表(3)反置页表页式存储管理中快表放在高速缓存中。页面调度策略调入策略置页策略置换策略页面置换算法最优页面置换算法(1)功能目标功能:当缺页中断发生,需要调入新...原创 2020-02-05 17:23:51 · 188 阅读 · 0 评论 -
操作系统(五)
同步注意事项:无论多个线程的指令序列怎样交替执行,程序都必须正常工作->多线程程序具有不确定性和不可重现的特点->不经过专门设计,调试难度很高不确定性要求并行程序的正确性->先思考清楚问题,把程序的行为设计清楚->切忌急于着手编写代码,碰到问题再调试信号量和管程为什么需要信号量回顾一下lock能解决并发问题中竞争条件(竞态条件)对资源的争夺;但是loc...原创 2020-02-03 16:40:34 · 368 阅读 · 0 评论 -
操作系统(四)
CPU调度上下文切换:->切换CPU的当前任务,从一个进程/线程转换到另一个进程/线程;->但是切换之前要保护现场,保存当前进程/线程在PCB/TCP中的执行上下文(也就是CPU的状态);->切换任务,当然要读取下一个进程/线程的上下文。CPU调度:->从就绪队列中挑选一个进程/线程作为CPU将要运行的下一个进程/线程;->需要调度程序(挑选进程/线程的...原创 2020-02-03 14:39:01 · 1727 阅读 · 0 评论 -
操作系统(三)
最优页面置换算法(1)功能目标功能:当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。目标:尽可能减少页面的换入换出次数(即缺页中断的次数)。把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理的指导下依据过去的统计数据来进行预测。页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键(time-critical)...原创 2020-02-03 13:04:29 · 291 阅读 · 0 评论 -
操作系统(二)
虚拟内存(1)目录-起因-覆盖技术(早期)/交换技术(早期)/虚存技术-虚拟内存技术:目标/程序局部性原理/基本概念/基本特征/虚拟页式内存管理(2)起因-经常出现内存不够了。程序规模的增长大于存储器容量的增长。-理想的存储器:更大,更快,更便宜,非易失性存储。-把硬盘的空间也用上(扮演内存的作用)-不常用的放在硬盘上,常用的放在内存上。(3)在计算机系统中,尤其是在多道程序运...原创 2020-02-03 13:03:52 · 146 阅读 · 0 评论 -
操作系统(一)
操作系统的启动系统调用定义:应用程序主动向操作系统发出服务请求源头:应用程序请求操作提供服务处理时间:同步或者异步响应:等待和持续异常定义:非法指令或者其他坏的处理状态(如:内存出错)源头:应用程序意想不到的行为处理时间:同步响应:杀死或者重新执行意想不到的应用程序指令中断定义:来自不同的硬件设备的计时器和网络的中断源头:外设处理时间:异步响应:持续,对用户应用程序是...原创 2020-02-03 13:02:49 · 255 阅读 · 0 评论