现代操作系统
Master.TJ
https://github.com/fengruotj
展开
-
现代操作系统:第三章 内存管理
操作系统的工作是将这个存储体系抽象成为一个有用的模型并将管理这个抽象模型操作系统中管理分层存储体系的部分称为存储管理器。它的任务是有效的管理内存,即记录哪些内存是正在使用的,哪些内存是空闲的,在进程需要时为其分配内存,在进程使用完成的时候为其释放内存。3.1 无存储器的抽象最开始并没有对存储器进行抽象,直接简单粗暴的使用物理内存地址,直接从0到某个上限值。每个地址可容纳一定的二进制位存储单元...原创 2018-11-09 17:52:56 · 1815 阅读 · 0 评论 -
进程间通信的方式(三):消息队列
消息队列是在两个不相关进程间传递数据的一种简单、高效方式,她独立于发送进程、接受进程而存在。消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为是一个管道,接收进程可以独立地接收含有不同管道的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与命名管道一样,每个数据块都有一个最大长度的限制。我们可以将每个数据块当作是一种消息类型(频...原创 2018-06-09 16:49:55 · 1774 阅读 · 0 评论 -
进程间通信的方式(四):信号量
信号量(semaphore)是一种用于提供不同进程之间或者一个给定的不同线程间同步手段的原语。信号量多用于进程间的同步与互斥,简单的说一下同步和互斥的意思:同步:处理竞争就是同步,安排进程执行的先后顺序就是同步,每个进程都有一定的先后执行顺序。互斥:互斥访问不可共享的临界资源,同时会引发两个新的控制问题(互斥可以说是特殊的同步)。竞争:当并发进程竞争使用同一个资源的时候...原创 2018-06-09 18:22:42 · 3021 阅读 · 2 评论 -
进程间的通信方式(一):共享内存
共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多...原创 2018-06-07 15:22:37 · 6792 阅读 · 1 评论 -
现代操作系统: 第九章 安全
日益庞大的操作系统和应用导致系统中不乏出现错误。当错误涉及安全类别的时候,我们就称之为漏洞。通过向软件输入特定的字节来触发错误。像这种触发错误的输入通常叫做漏洞攻击或者漏洞利用。攻击可以通过病毒,手动或者自动的执行漏洞攻击。9.1 环境安全术语“安全”来表示所有的基本问题,用术语“防护机制”来表示特定的操作系统机制来确保计算机信息安全。9.1.1 威胁第一目标是数据保密,这种执行的力度应...原创 2018-11-12 19:33:02 · 1281 阅读 · 0 评论 -
现代操作系统: 第六章 死锁
在计算机系统中有很多独占性的资源,在任意时刻中都只能被一个进程所占有。6.1 资源在进程对设备、文件等取得了排他性访问权的时候,有可能会产生死锁。为了尽可能使关于死锁的讨论通用,我们把这类需要排他性使用的对象称为资源。6.1.1 可抢占性资源和不可抢占性资源可抢占性资源:可以从拥有它的进程中抢占而不产生任何副作用,存储器就是一种可抢占性的资源。不可抢占性资源:不引起相关的计算失败的情况...原创 2018-11-12 16:31:07 · 1399 阅读 · 0 评论 -
现代操作系统: 第五章 输入/输出
除了提供抽象之外(进程、地址空间和文件),操作系统还要控制计算机的所有I/O(输入和输出)设备。5.1 I/O硬件原理对于电子工程师来言,I/O硬件就是芯片、导线、电源、电机和其他组成硬件的物理部件。对于程序员来言,则只注意I/O硬件提供给软件的接口。5.1.1 I/O设备I/O设备大致可分为两类:块设备和字符设备。块设备:块设备把信息存储在固定大小的块中,每个块有自己的地址。,每个块...原创 2018-11-11 19:26:30 · 3221 阅读 · 0 评论 -
现代操作系统: 第八章 多处理机系统
多处理机系统模型主要有三类:分别是共享存储器多处理机、消息传递多计算机、广域分布式系统共享存储器多处理机:获得高速的一种处理方式就是使用并行处理机。这些机器使用许多CPU, 每一个都以“通常”的速度运行,但是总体上会比单个CPU强大得多的计算能力。消息传递多处理机系统:许多CPU-存储器通过某种高速互联网络连接在一起。这种系统称为消息传递型多计算机。广域分布式系统:所有计算机通过一个广域网...原创 2018-11-13 18:04:14 · 5364 阅读 · 0 评论 -
现代操作系统: 第一章 引言
现代计算机由一个或多个处理器、主存、磁盘、打印机、鼠标、显示器、网络接口以及各种其他输入/输出设备组成。多数计算机有两种运行模式:内核态和用户态。软件中最基本的部分是操作系统,它运行在内核态。操作系统由硬件进行保护,防止用户试图对其进行修改 操作系统和普通软件的主要区别,如果用户不喜欢某个特定的应用软件,用户可以重新写一个软件。但是不能自行写一个属于操作系统中的一部分的时钟中断处理程序。因为这...原创 2018-11-06 17:37:37 · 1400 阅读 · 0 评论 -
现代操作系统:进程和线程总结
多进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。Linux系统函数fork()可以在父进程中创建一个子进程,这样的话,在一个进程接到来自客户端新的请求时就可以复制出一个子进程让其来处理,父进程只需负责监控请求的到来,然后创建子...原创 2018-11-07 17:58:27 · 975 阅读 · 0 评论 -
现代操作系统:第二章 进程和线程
操作系统中最核心的概念就是进程,这是对正在运行的程序的抽象。2.1 进程操作系统最核心的概念就是进程,它是对正在运行的程序的一个抽象,也可以理解为对处理器的抽象。即使可用的CPU可用,但是依然可以支持多进程(伪)并发操作。2.1.1 进程模型在进程模型中,计算机上所有的可运行的软件,通常也包括操作系统,被组织成若干顺序进程,简称进程。一个进程就是一个正在执行程序的实例。一个进程就是某种...原创 2018-11-07 17:54:30 · 1446 阅读 · 0 评论 -
现代操作系统: 第四章 文件系统
在多程序多用户的系统上,读取数据有以下问题:如何找到信息?如何防止一个用户读取另一个用户的数据如何知道哪些块是空闲的?通过前面的学习, 我们知道 操作系统对处理器进行抽象 建立了进程这个概念; 通过对物理存储器的抽象建立了 虚拟地址空间的概念, 现在,为了解决问题, 就创建了 文件 这个抽象概念。操作系统处理文件的部分 称为文件系统。文件是授操作系统管理的。有关文件的构造、命令、访问...原创 2018-11-10 15:28:09 · 1671 阅读 · 0 评论 -
进程间的通信方式:简介
1.概述 IPC就是进程间通信(interprocess communication)的简称。传统上该术语描述的是运行在某个操作系统之上的不同进程间的消息传递(message passing)的方式。 在Unix操作系统过去30年的演变史中,消息传递经历了如下几个发展阶段。管道:是第一个广泛使用的IPC形式,既可以在程序中使用,也可以在shell中使用。管道...原创 2018-06-08 23:17:40 · 854 阅读 · 0 评论