
操作系统
宫城诗
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
20200915——操作系统五
文件的属性文件名:同一目录不允许有重名文件。标识符:一个系统内文件的标识符唯一,对用户来说毫无可读性。类型:.txt位置:文件存放的路径大小:字节创建时间保护信息:对文件进行保护的访问控制信息文件内部的数据我们进行读文件,其实调用了操作系统的read的系统调用删除文件,又是操作系统的delete系统调用文件如何存取在外存操作系统以块为单位为文件分配存储空间,因此即使一个文件大小只有10b,但它依然需要占用1kb的磁盘块,外存中的数据读入内存同样以块为单位。类似于内存分为一个个原创 2020-09-16 23:27:19 · 196 阅读 · 0 评论 -
20200914——操作系统四
什么是内存?有何作用?内存是用于存放数据的硬件,程序执行前,需要先放到内存中才能被cpu进行处理。多道程序中,怎么把那么多程序放在内存中。所以内存是一个字节一个地址,相当于8位指令先从内存中,取出该数,然后在寄存器进行运算。我们的代码要翻译成cpu能识别的指令,这些指令会告诉cpu应该去内存哪些地方存/取数据,这个数据应该做什么样的处理。在这个列子中,指令中直接给出了变量x的实际存放地址(物理地址)。但实际在生成机器指令的时候,并不知道该进程的数据会被放到了什么位置,所以编译生成的指令一般是使原创 2020-09-14 23:13:09 · 319 阅读 · 0 评论 -
20200914——操作系统三
什么是死锁等待资源阻塞。死锁 饥饿和死循环死锁产生的必要条件互斥条件只有对必须互斥使用的资源的争抢才会导致死锁不可剥夺条件不能有其他进程强行夺走,只能主动释放请求和保持条件循环等待什么时候发生死锁各进程对不可剥夺的资源的竞争可能引发起死锁,对可剥夺的资源cpu的竞争,是不会引起死锁的。进程推进顺序非法,请求和释放资源顺序不当,也同样会导致死锁。死锁的处理策略预防死锁,破坏死锁的四个必要条件避免死锁,用某种方法防止系统进入不安全状态,从而避免(银行家算法)死锁检测与接触,某原创 2020-09-14 19:55:18 · 173 阅读 · 0 评论 -
20200912——操作系统二
进程的定义程序就是一个指令序列。系统为每一个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息。pcb,程序段,数据段三部分构成了进程实体(进程映像)pcb是进程存在的唯一标志进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程的组成进程是由pcb,程序段,数据段三部分组成的。进程描述符进程标识符 PID 当进程被创建之后,操作系统会给其唯一分配一个、不重复的ID用户标识符 UID进程控制和管理信息进程当前状态进程优先级资源分配清单程原创 2020-09-13 14:47:41 · 671 阅读 · 0 评论 -
20200911——操作系统一
操作系统的概念操作系统是一个软件,而不是一个硬件。是为了协调硬件与给软件提供的服务的一个系统。操作系统的定义operation system 是指控制和管理整个计算机系统的硬件和软件资源,并且合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。操作系统的功能和目标以这个QQ作为例子的话。我们想要找到QQ的可执行文件位置,是文件管理。然后我们执行程序,相当于把程序加载到内存中,存储器管理然后对应的进程的cpu进行处理,是处理器管原创 2020-09-12 18:43:54 · 297 阅读 · 0 评论 -
20200829——操作系统 中断
中断机制的产生早起计算机各个程序只能串行执行,系统资源利用率低,。为了解决这个问题,人们就发明了操作系统,引入了中断机制,实现了多道程序的运行,提高了系统资源的利用率。中断是多程序并发执行的前提条件。中断的实例两个进程并发运行进程1在用户态运行了一段时间后,CPU会接收到计时部件(操作系统内核的时钟管理部件)发出的中断信号,表示进程1已经用完了一个时间片,CPU会切换到核心态,把CPU的使用权限交还给操作系统,操作系统内核就会对刚才的中断进行处理,操作系统知道进程1的时间片用完,就需要切换进程,在原创 2020-08-29 01:40:24 · 369 阅读 · 0 评论 -
20200828——操作系统 linux的平均负载
linux性能调优-平均负载指令uptime 命令后三列,分别表示1分钟,5分钟,15分钟的平均负载。平均负载就是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,和cpu的使用率并没有直接关系。可运行状态进程等待cpu的进程不可中断状态进程在内核态关键流程的进程,这些流程不可被打断,比如等待硬件I/O响应,ps查看是D状态的进程查看cpu的核数(逻辑核数,不是物理核数)grep 'model name' /proc/cpuinfo |wc -l比如当原创 2020-08-28 12:31:54 · 201 阅读 · 0 评论 -
20200820——线程池的状态
前言记住,是线程池的状态,不是线程状态。线程池的五种状态running,shutdown,stop,tidying,terminatedRunning状态说明:线程池处在running状态时,能够接受新任务,以及对已添加的任务进行处理。状态切换:线程池的初始化状态是running,换句话说,线程池一旦被创建,就处于running状态,并且线程池里面的数量为0.Shutdown状态说明:线程池处在shutdown状态时,不接受新任务,但能处理已经添加的任务。状态切换:调用线程池的shutd原创 2020-08-20 00:47:54 · 182 阅读 · 0 评论 -
20200728——操作系统 内存屏障
目录问题的产生Store Buffer内存操作顺序写内存屏障顺序写操作导致了 CPU 的停顿读内存屏障参考问题的产生如图,cpu0发送了一个写操作,但是此时的cpu0中的cache line没有该项数据,那么就会向其他的cpu发送一个Invalidate的指令,其他所有的cpu接受到之后就会删除自己cache line中的对应数据,并且发送消息到acknowledge到Cpu0。cpu0在收到所有的消息之后会将数据写入到自己的local cache中,这里就产生了性能的问题,在接受到所有的请求之前,c原创 2020-07-28 21:03:38 · 834 阅读 · 0 评论 -
20200728——操作系统 缓存一致性协议MESI
cpu cache结构cpu在执行指令的时候,需要从memroy中获取指令和需要的数据。但是cpu的速度比memory快上许多。这就导致了cpu大部分的时间都不是消耗在了运算上面,而是用在了和memory进行数据的IO过程中,这样性能是很低的,这就导致了cpu cache的产生,cpu将数据从memory读取到cache中,在cache中对数据进行读写的速度是很快的,这样就提高了性能,cpu执行运算时不可能需要某一个数据就要读取一次,这样就提高了IO的频率,导致性能底下,所以会一次性读取一块内存的数据放原创 2020-07-28 20:33:27 · 483 阅读 · 0 评论 -
20200726——操作系统 进程调度算法
目录前言先来先服务调度算法短作业优先调度算法时间片轮转法多级队列反馈优先权调度算法非抢占式优先权算法抢占式优先权调度算法Unix、Linux与Windows进程调度策略的比较LinuxUnixWindows前言是进程调度算法,是进程调度算法,是进程调度算法。先来先服务调度算法顾名思义,谁先来的谁就先获取cpu,一直运行。就像队列一样,谁先来的队列,谁就开始运行,运行完,执行下一个线程。短作业优先调度算法顾名思义,从队列中,挑选出一个运行时间最短的作业,调入内存中进行运行。时间片轮转法按照就绪原创 2020-07-26 16:04:26 · 492 阅读 · 0 评论 -
20200725——操作系统 线程间通信的方式
前言复习一下,进程间通信的方式有1)管道2)信号量3)消息队列4)共享内存5)socket远程调用volatile关键字/** * @Classname Test1 * @Description TODO * @Date 2020/7/25 23:26 * @Created by mmz */public class Test1 { static volatile boolean flag = true; public static void main(Stri原创 2020-07-26 00:21:44 · 1101 阅读 · 0 评论 -
20200726——操作系统 磁盘
目录前言磁盘的结构磁盘读取数据的步骤磁盘调度算法先来先去服务最短寻道时间电梯算法个人总结前言操作系统很重要的比例在于磁盘,从软件应用层面我们不必关心内存是如何读取数据。但是从了解计算机的角度去考虑,把这个部分作为学习的知识点。磁盘的结构盘面(Platter):一个磁盘有多个盘面;磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道;扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小;原创 2020-07-26 15:29:12 · 295 阅读 · 0 评论 -
20200408——操作系统 线程死锁
死锁(DeadLock)死锁概述线程死锁是指两个或两个以上的线程互相持有对方所需要的资源,由于synchronized的特性,一个线程持有一个资源,或者说获得一个锁,在该线程释放这个锁之前,其它线程是获取不到这个锁的,而且会一直死等下去,因此这便造成了死锁。死锁产生的条件互斥条件:一个资源,或者说一个锁只能被一个线程所占用,当一个线程首先获取到这个锁之后,在该线程释放这个锁之前,其它线程均...原创 2020-04-08 14:25:05 · 258 阅读 · 1 评论 -
20200716——操作系统中的IO 同步异步
应用到的框架设计到了Jetty io框架,记录一下学习的内容IO模型主要的分类同步(synchronous) IO和异步(asynchronous) IO阻塞(blocking) IO和非阻塞(non-blocking)IO同步阻塞(blocking-IO)简称BIO同步非阻塞(non-blocking-IO)简称NIO异步非阻塞(synchronous-non-blocking-IO)简称AIOBIO(同步阻塞)数据的读取写入必须阻塞在一个线程内等待其完成。这里使用那个经典的烧开水例子原创 2020-07-16 17:16:25 · 351 阅读 · 0 评论 -
20200715——计算机网络 tcp详解
tcp的阻塞控制本文将例举目前 Linux 内核默认的 Reno 算法和 Google 的 BBR 算法进行说明慢启动一开始不要发送大量的数据,先探测一下网络的拥塞程度。从小到大逐渐增加拥塞窗口的大小,在没有出现丢包的时候,每收到一个ack就将拥塞窗口大小+1,单位是MSS,最大单个报文长度。每次发送窗口增大一倍,呈指数增长,若出现丢包,则将拥塞窗口减半,进入拥塞避免状态。拥塞避免当窗口达到满启动阈值或出现丢包的时候,进入拥塞避免状态,窗口每轮增长+1,呈线性增长。当收到对方三个重复的ack的.原创 2020-07-15 21:14:30 · 439 阅读 · 0 评论 -
20200715——操作系统 虚拟内存
内存的发展历史没有内存抽象(单进程,除去操作系统所用的内存之外,全部给用户程序使用) —> 有内存抽象(多进程,进程独立的地址空间,交换技术(内存大小不可能容纳下所有并发执行的进程))—> 连续内存分配(固定大小分区(多道程序的程度受限),可变分区(首次适应,最佳适应,最差适应),碎片) —> 不连续内存分配(分段,分页,段页式,虚拟内存)什么是虚拟内存虚拟内存的基本思想:每个进程拥有自己独立的地址空间,这个空间被分为大小相等很多的块,称为页,每个页都是一段连续的地址。这些页被映射原创 2020-07-15 19:47:19 · 385 阅读 · 0 评论 -
20200715——操作系统 内存分页分段
分页分段这两个技术都是为了利用和管理更好的资源——内存问题来源在分段这个技术还没有出现之前,程序运行是需要从内存中分配出足够多的连续的内存,然后把整个程序装载进去。举个例子,某个程序大小是10M,然后,就需要有连续的10M内存空间才能把这个程序装载到内存里面。如果无法找到连续的10M内存,就无法把这个程序装载进内存里面,程序也就无法得到运行。上述我们说到的把整个程序装载到内存中方式是有问题的地址空间不隔离举个例子,假设我有两个程序,一个是程序A,一个是程序B。程序A在内存中的地址假设是0x000原创 2020-07-15 19:32:37 · 428 阅读 · 0 评论 -
20200422——操作系统 进程间通信的方式
简单概述进程间通信(Interprocess communication的简称)。传统上该术语描述的是运行在某个操作系统之间的不同进程间的消息传递(message passing)的方式。为什么需要进程间通信因为我们有一些程序是需要多个进行或者线程共同完成某个具体的任务。那么就需要进程之间的通信和访问。整个系统以进程粒度运行可以进一步提高系统整体并行性能和内存访问安全,每个进程可以有自己的分...原创 2020-04-22 10:09:59 · 622 阅读 · 0 评论 -
20200420——Zookeeper初入门槛
Zookeeper是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读问题。Zookeeper 是一个分布式的小文件存储系统Zookeeper特性全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,所显示的数据都是一致的,这是最重要的特性。可靠性:如果一条消息被其中一台服务器接受,那么将...原创 2020-04-20 17:47:59 · 162 阅读 · 0 评论 -
20200419——虚拟机 创建虚拟机的三种模式 Nat 桥接 主机
桥接模式在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和虚拟机处于对等地位),它可以访问网内任何一台机器。在桥接模式下,我们往往需要为虚拟主机配置IP地址、子网掩码等(注意虚拟主机的ip地址要和主机ip地址在同一网段)。使用桥接模式的虚拟系统和主机的关系,就如同连接在一个集线器上的两台电脑;要让他们通讯就需要为虚拟系统配置ip地址和子网掩码。如果我们需要...原创 2020-04-19 19:51:34 · 310 阅读 · 0 评论 -
20200416——Linux的目录结构与常见文件夹
windows的目录分割符/var/log 用来存放日志home 对应于 rootopt主要放mysql redis 这种数据库etc主要是配置文件,也就是我一开始如何开启的配置文件ONBOOT == yes一开始新建的时候为false,所以开机没有ip地址这个文件下面是管理dns的,如果你没有开启这个那么你访问不到外网的。ping 域名是不行的,但是可以通过ip访问c...原创 2020-04-16 18:41:12 · 153 阅读 · 0 评论 -
20200416——linux系统安装
第一个问题关于虚拟机安装的时候的网络类型桥接网络就是在当前的网络环境下面,再分配一个ip地址,桥接就是让虚拟机和宿主机同处于一个局域网络NAT就是在宿主的主机网络下面,再生成一个虚拟机局域网,和宿主机不是同一个网段的。仅主机模式虚拟机就是单机模式了,无法和其他人通信。安装完毕之后用以前学过xshell工具,连接到这个虚拟机。如何查看ip地址?ip addr show;也可以...原创 2020-04-16 16:56:45 · 130 阅读 · 0 评论 -
20180715 Ubantu桌面入门指南
由于目前区块链的多种软件对Ubantu比较友好,今天用VMware虚拟机安装了Ubantu,便想着写一篇博客记录一下。Ubantu的桌面入门指南 主要链接为Ubantu入门同时对自己的英文水平提升一下Apache 是世界服务器使用排名第一的软件内核是整个操作系统的最低城,负责整个硬件的驱动,控制硬件如何工作。镜像服务器:与主服务器相同,只不过放在不同的地方,帮助主服务器负载ISO镜像文件:.is...原创 2018-07-15 11:14:47 · 447 阅读 · 0 评论 -
20200404——java中的io编程
java中的io编程主要分为三大部分。File,字节流,字符流java IO 概述常用概念* IO流用来处理设备之间的数据传输* Java对数据的操作是通过流的方式* Java用于操作流的类都在IO包中* 流按流向分为两种:输入流,输出流。* 流按操作类型分为两种:* 字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的* 字符流 : 字符流只能操作...原创 2020-04-04 13:54:47 · 361 阅读 · 0 评论 -
20200403——五种I/O模型
在网络环境下,通俗的讲,将IO分成两步等数据搬迁如果要想提高IO效率,需要将等的时间降低五种IO模型包括阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO。阻塞IO小猫A拿着一支鱼竿在河边钓鱼,并且一直在鱼竿前等,在等的时候不做其他的事情,十分专心。只有鱼上钩的时,才结束掉等的动作,把鱼钓上来。就是小猫在钓鱼的时候,不可以托管,一次只能用一个小鱼...原创 2020-04-03 23:47:42 · 163 阅读 · 0 评论