计算机系统
tab_tab_tab
这个作者很懒,什么都没留下…
展开
-
C语言如何获得变量的物理地址以及简单的写时拷贝测试
基本的思路:linux下的/proc/self是对自身进程映射的文件夹,里面的pagemap允许查看到每个虚拟页映射到的物理页。#include <stdio.h>#include <unistd.h>#include <inttypes.h>intptr_t Mytop(uintptr_t vaddr) { FILE *pagemap; intptr_t paddr = 0原创 2016-04-27 14:49:16 · 5802 阅读 · 3 评论 -
程序员的自我修养笔记第一章
1.2万变不离其宗早期的计算机体系的硬件设计: 虽然经过N年变化变成这样: 看似复杂,却没有摆脱原来的框架模型,和原来的模型核心几个点:IO、内存、CPU始终没有没有改变。因此是可以看成是最早的模型,或者说标题= = 万剑不离其宗。。。 好吧。。。总的也就这么多。现在记录下这一节学到的东西吧 1.计算机历史:早期的计算机CPU频率和内存频率几乎保持着一致性,所以看图1-1发现内存竟原创 2016-04-27 20:53:46 · 457 阅读 · 1 评论 -
多进程和多线程的优缺点
原文:http://www.91linux.com/html/2014/cpp_0703/14633.htmlLinux内核对多进程和多线程的支持方式: 线程机制支持并发程序设计技术,在多处理器上能真正保证并行处理。而在linux实现线程很特别,linux把所有的线程都当作进程实现。linux下线程看起来就像普通进程(只是该进...Linux内核对多进程和多线程的支持方式:转载 2015-10-03 21:03:15 · 404 阅读 · 0 评论 -
利用VS2013构搭linux0.11内核调试环境
VS2013的下载链接:链接:http://pan.baidu.com/s/1mh7iLfy 密码:ir2o linux 0.11的工程 链接:http://pan.baidu.com/s/1eRUvAUY 密码:ue3h 下载完成后然后从打开刚刚的Linux0.11工程。 再然后设置image为启动项目 再按ctrl+F5直接执行,弹出两个窗口,其中这个窗口就是linux0.11的调原创 2016-05-10 17:24:16 · 570 阅读 · 0 评论 -
操作系统进程与线程之线程篇
1.1为什么要引入多线程?从多个角度去分析下 - A.从用户角度分析 ,有得程序员需要写一个经常阻塞(比如I/O的程序),没人希望自己程序阻塞一次就挂起。 - B.从系统设计角度分析 ,许多系统搞出来的线程切换的速度都是远远大于进程切换速度的。而且线程切换好处是Cache里面的数据可以不抛弃,而进程切换后必须抛弃Cache里的数据,呃,总之是快…具体的差别请看下面 - C.从硬件上分析原创 2016-05-10 17:00:35 · 794 阅读 · 0 评论 -
操作系统进程与线程之进程篇
1.1进程模型进程就是一个正在运行的程序,它由程序计数器、寄存器、当前变量的值组成。在单CPU环境下,操作系统利用了多道程序设计,来使得进程在一个时间片内快速的进行切换,进而达到了并行的效果,这只是一种模拟的“并发”,因而称之为并行。 问题1:物理寄存器只有固定的几个,程序计数器也是每个CPU人手一个,根本没法做到每个进程人手一个程序计数器,一套寄存器。因而给出的解决方案是:把一套寄存器,一原创 2016-05-15 22:10:58 · 2110 阅读 · 1 评论 -
malloc是线程安全的吗
只在Linux下查看了malloc的使用情况:GCC版本4.6.1libc-dev 3.0.0-14.23//============================================================libc中有非线程安全/线程安全两个版本malloc函数下面的链接对此有描述,几年前的版本可能是这样的:通过 -pthre转载 2016-05-06 09:58:07 · 5816 阅读 · 0 评论 -
如何高效的访问内存
影响内存访问速度的因素主要有: 1.内存带宽:每秒读写内存的数据量,由硬件配置决定。 2.CACHE高速缓冲:CPU与内存之间的缓冲器,当命中率比较高时能大大提供内存平均访问速度。 3.TLB转换旁视缓冲:系统虚拟地址向物理地址转换的高速查表机制,转换速度比普通转换机制要快。我们能够优化的只有第2点和第3点。由于CACHE的小容量与SMP的同步竞争,如何最大限度的利用高速缓冲就是我们的明确优化转载 2016-05-22 21:52:22 · 578 阅读 · 0 评论