精彩纷呈的操作系统
文章平均质量分 90
以理论为出发点,理解操作系统中的概念,工作原理等
sermonlizhi
行百里者半九十
展开
-
操作系统概述
一、基本简介1.1 VIRTUAL MACHINE操作系统向用户提供了一个容易理解和使用的”计算机“(虚拟机),用户对这个计算机的操作都将被操作系统转换成对计算机硬件的操作。应用程序可以通过操作系统向上提供的接口来操作硬件,而不能直接调用操作硬件的接口,操作硬件由操作系统来完成。1.2 操作系统可以做什么?用户角度提供良好的用户界面标准的函数库,供开发人员使用,无需关注硬件使得编程更加方便并且不容易出错系统角度资源管理,包含硬件资源(处理器、存储器、设备)、信息资源(文件)解原创 2021-07-13 15:14:24 · 450 阅读 · 0 评论 -
详解操作系统进程
一、基本概念1.1 程序和进程A program is a passive entiy,such as a file containing a list of instructions stored on disk(ofen called an executable file)程序是一个存在磁盘上包含一系列指令的被动实体,程序只能被动加载到内存而不是主动加载A program becomes a process when an executable file is loaded into m原创 2021-07-13 15:17:19 · 865 阅读 · 0 评论 -
详解操作系统线程
一、线程概述1.1 为什么需要线程一个应用通常需要同时处理很多独立的工作,同时执行的任务称为”执行流“,由于各个执行流是独立的,所以在多核CPU中,不希望他们是顺序执行的。在《详解操作系统进程》的最后面,我们提高了创建子进程可以得到两个并发执行的流,能够并发完成不同的操作,早期,每个执行流都要创建一个进程来实现,但创建子进程的弊端是:父子进程拥有完全相同的内存镜像、变量、寄存器以及除了进程标识符以外所有的东西,非常浪费内存空间,于是就产生了轻量级进程——线程。由于线程比进程更轻量级,所以原创 2021-07-16 14:09:33 · 1795 阅读 · 0 评论 -
详解进程同步
进程和线程都是CPU的调度单元,所以进程同步和线程同步是一样的概念,文中不具体细分进程和线程一、进程同步在详解操作系统进程中,介绍过了并发进程,并发进程之间分为独立关系和交互关系,独立关系的进程分别在自己的变量集合上运行,互不影响;但交互关系的并发进程在执行过程中需要共享或交换数据,因此交互的并发进程之间存在着竞争和协作关系。1.1 竞争以一个打印机程序为例,当一个进程需要打印文件时,将文件放入打印机程序的打印目录中,目录中有很多槽位,每个槽位放置一个文件,每个进程在需要打印文件前,需要先知道接下来原创 2021-07-30 08:03:12 · 7154 阅读 · 0 评论 -
Linux内存管理
一、进程内存空间1.1 逻辑地址和物理地址通过一个反编译的C语言文件查看逻辑地址完整的C语言代码#sample.cint sum(int x,int y){ return x+y;}int main(){ sum(2,3); return 0;}使用gcc进行编译和汇编但不链接成可执行文件,得到目标二进制代码文件#生成二进制文件 sample.ogcc -g -c sample.c使用objdump对sample.o进行反编译查看其汇编代码#反汇编指令原创 2021-08-30 16:40:14 · 613 阅读 · 0 评论 -
详解操作系统分页
一、分段与分页1.1 动机(MOTIVATION)Solution to fragmentation:permit the logical address space of processes to be noncontigunous分段和分页作为碎片问题的一个解决方案,允许进程的逻辑空间地址不是连续的The view of momory is different betweenlogical(programmer’s):a variable-sized segmentsphysica原创 2021-08-30 16:47:56 · 4901 阅读 · 0 评论 -
Linux虚拟内存
一、 局部性原理在《详解操作系统分页》中,通过将部分页表放入到TLB中加快访问速度,这些页表称为快表,但哪些页表应该放入到TLB(Cache)中呢?1.1 缓存Cache(一般的)CPU访问数据的时候,首先到相应的缓存里面查找数据,如果缓存中没有,则访问内存获取,同时将从内存中获取到的数据存入到缓存中Cache结构如上图所示,假设Cache的每一格是8Bytes,每一个缓存行是64Bytes,Cache的读写是以缓存行(CacheLine)为单位的,当CPU从内存读取数据时,并不只是将所需要的数原创 2021-08-30 16:52:41 · 386 阅读 · 0 评论 -
Linux磁盘调度
一、磁盘结构1.1 磁盘结构磁盘主要由磁道、扇区、柱面以及磁头构成 磁道:能被磁头访问一组同心圆扇区:磁道上的区域,数据存放的基本单位柱面:所有盘片同一磁头下的磁道集合(不同盘片的相同磁道的磁头是一起旋转的)对于磁道的划分有两种方式:每条磁道上的扇区数相等、每条磁道上的数据密度相等(外围的磁道有更多的扇区)磁道划分方式的不同,对应这磁头旋转速度的不同恒角速度(内外磁道磁头转动的速度一样)适用不同磁道密度不同,但转速恒定恒线速度(内外磁道磁头转到的距离一样)磁道原创 2021-08-30 17:20:41 · 1437 阅读 · 1 评论 -
文件系统概述
一、文件系统在《Linux磁盘调度》的磁盘格式化中,介绍了磁盘的低级格式化和高级格式化,高级格式化就是为磁盘构件文件系统,那文件系统是什么呢?可以将文件系统看作一个软件,它需要在磁盘上写入一些数据结构和数据,以扇区为单位写入,这个过程就叫做构建文件系统1.1 文件系统概念For most users,the file system is the most visible aspect of an operating system对于大多数用户来说,文件系统是操作系统中最显而易见的,时刻都是使用原创 2021-09-05 15:26:46 · 1098 阅读 · 0 评论 -
Linux硬盘格式化
1.1 准备工作查看当前系统的磁盘数据Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identif原创 2021-09-08 09:24:03 · 2936 阅读 · 0 评论 -
Linux文件系统
一、 Linux文件系统在《Linux硬盘格式化》中,将新添加的磁盘b设置成了GPT分区,同时创建了两个分区sdb1和sdb2,并为两个分区分别构建了文件系统,然后进行了分区挂载,下面主要观察sdb1分区中的文件信息1.1 树型目录结构在sdb1分区创建几个文件和几个目录,以及它们的子目录,查看Linux中目录结构root@Dog-li:/mnt/linux# tree.├── lizhi│ ├── Go│ ├── JAVA│ └── main.c├── lost+found原创 2021-09-08 09:42:02 · 149 阅读 · 0 评论 -
文件系统实现
1.1 文件系统要实现什么磁盘构成部分:分区表、空闲块映射表、目录项和数据磁盘经过低级格式化分成了大小相同的块(block),也称为分区(sector),每个块的大小为512Bytes,现在很多磁盘扇区的实际大小为4KBytes,但是逻辑大小仍然为512Bytes,为了兼容老的系统 再经过分区、构建文件系统、分区挂载就可以使用了。在磁盘中,最前面的分区存放的是分区表信息,接着是空闲块信息,用于给文件分配扇区,然后是文件系统的目录项,记录了每个文件的信息。文件系统主要实现以下几点:管理文件目录空原创 2021-09-12 10:25:46 · 1161 阅读 · 1 评论 -
Linux文件链接-硬链接和软连接
1.1 硬链接和软连接硬链接(Hard Link)#创建硬链接命令ln filename hardLinkFileName软链接(Symbel Link)#创建软链接命令ln -s filename softLinkFileName1.2 创建软硬链接,查看区别首先创建两个文件,查看Inode编号#创建文件root@Dog-li:/mnt/linux# echo hello1 > hello1root@Dog-li:/mnt/linux# echo hello原创 2021-09-12 11:43:05 · 404 阅读 · 0 评论 -
I/O系统
一、I/O硬件1.1 I/O设备在计算机的主板上,CPU以及各类设备之间的数据传输都是通过总线来完成总线:一组线路和通过线路传输信息的一个协议以CPU和内存为例,它们之间的数据传输,一条线路一次只能传输一个bit,如果想要一次传输多个bit,就需要多条线路,多条线路为一组,称为总线,这种多条线路同时传输的方式称为并行,单条线路传输的方式称为串行。如果设备与设备之间都是并行传输,以为这需要太多的总线,计算机的体积也会复杂起来,同时碍于线路的密度太高,彼此之间的传输也会收到影响,而从传输效率上,假设并原创 2021-09-12 18:12:01 · 1722 阅读 · 0 评论