![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 89
等待你的蜕变
这个作者很懒,什么都没留下…
展开
-
进程与线程的简单解释
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。转载 2016-06-17 15:10:28 · 249 阅读 · 0 评论 -
操作系统与我们编程的关系(抽象和封装的运用)
通常,计算机用户是用高级语言来编写应用程序的,但计算机的硬件却是按照机器码指令来执行操作的。于是,就出现了这样一个问题:用户如何才能用高级语言来指示一台只能识别机器码指令的机器来工作。显然,在高级语言程序和机器硬仵之间,必须有一个中介来完成高级语言与低级语言的对接工作。 为了说明问题,先看一下当一个用户面对一台裸机时他会面对什么样的问题及困难。在使用计算机时,如果用户面对的是一台只由硬件原创 2017-03-11 14:45:50 · 2443 阅读 · 2 评论 -
以操作系统的角度述说线程与进程
什么是线程什么是线程?线程与进程有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲得好,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把它讲得通俗一点,讲得明白一点,因为这是个困扰我很久的,扑朔迷离的知识领域,希望通过我的理解来揭开它一层一层神秘的面纱。1.任务调度线程是什么?要理解这个概念,必须要先了解一下操作系统的一些相关概念转载 2016-06-23 21:51:59 · 474 阅读 · 0 评论 -
进程和线程的联系和区别
定义一、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。二、线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;进程和线程的关系(1)一个线程只能属于一个进程,而转载 2016-06-23 21:49:26 · 273 阅读 · 0 评论 -
内存缓存策略探析
写的一个例子来谈谈缓存的写法以及淘汰策略。缓存的用途场景会比较多,这里可以结合计算机硬件分层的思想从寄存器-->Cache(L1,L2,L3)-->主存-->磁盘就可以知道缓存的用途。一般web应用最基本的场景是就是存数据和取数据,比如存储介质是数据库,数据库不完全都是磁盘IO,数据库本身也会在内存中开辟一块空间用来存一些热点数据。总归一句话:内存缓存就是为了利用内存本身的特性来加快访问数据的速度转载 2016-06-21 19:16:53 · 352 阅读 · 0 评论 -
对于缓存思想的理解
那么,缓存思想是如何的呢?Q:什么样的缓存才是好缓存? 能解决问题的缓存就是好缓存。这句话简直就是废话,相当于白猫、黑猫,抓住老鼠的就是好猫。 那在解决问题前提下,哪个缓存才是好缓存呢? 答案是:缓存命中率高的缓存是好缓存。 在解决问题前提下,命中率高的缓存比命中率低的缓存,在硬件投入上可能会比较小,同时缓存的数量比命中率低的缓存数量也可能少,这样寻址的速转载 2016-06-21 16:34:15 · 991 阅读 · 0 评论 -
如何实现一个malloc
任何一个用过或学过C的人对malloc都不会陌生。大家都知道malloc可以分配一段连续的内存空间,并且在不再使用时可以通过free释放掉。但是,许多程序员对malloc背后的事情并不熟悉,许多人甚至把malloc当做操作系统所提供的系统调用或C的关键字。实际上,malloc只是C的标准库中提供的一个普通函数,而且实现malloc的基本思想并不复杂,任何一个对C和操作系统有些许了解的程序员都可以很转载 2016-07-28 10:50:22 · 242 阅读 · 0 评论 -
缓存算法(页面置换算法)-FIFO、LFU、LRU
缓存算法(页面置换算法)-FIFO、LFU、LRU 在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO、LFU1.FIFO算法 FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则转载 2016-06-21 11:50:21 · 1146 阅读 · 0 评论 -
浅谈操作系统对内存的管理
简介 内存是计算机中最重要的资源之一,通常情况下,物理内存无法容纳下所有的进程。虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所以无论物理内存如何增长,都赶不上程序增长的速度,所以操作系统如何有效的管理内存便显得尤为重要。本文讲述操作系统对于内存的管理的过去和现在,以及一些页替换的算法的介绍。 对于进程的简单介绍 在开始之前,首先从转载 2016-07-28 00:26:00 · 2710 阅读 · 0 评论 -
深入理解计算系统」从Hello World开始
从 hello world 开始Table of Contents1 程序源文件2 程序源文件是什么3 程序被编译4 程序运行4.1 读取命令4.2 读取指令内容4.3 执行过程5 进程5.1 进程切换5.2 虚拟地址空间1 程序源文件#include int main() { printf ("hello, wo转载 2017-04-04 23:08:27 · 359 阅读 · 0 评论