操作系统
文章平均质量分 81
in_han
这个作者很懒,什么都没留下…
展开
-
C++ 基础总结
1.类的接口调用顺序不能规定顺序:即以任何顺序调用都不应发生异常。2.当一个类的对象超出其作用域时, 编译器即会调用其析构函数... { Test t; } cout<<"end"; //在cout<<"end";之前,会看到类Test的析构函数的输出...由汇编代码也可看出Test::~Test()的调用..3原创 2010-04-16 23:10:00 · 423 阅读 · 0 评论 -
A Simple JIT
JIT cpu及程序环境切换:1) 保存寄存器。2) 保存栈信息。1和2在用户态可以任意操作: esp,ebp在用户态可以随便修改。2.如何执行:如何执行一段动态二进制代码?要求: 动态二进制代码所属区域要能写、能执行。示例:原创 2015-12-30 15:02:48 · 576 阅读 · 0 评论 -
linux0.11启动过程
环境:linux-0.11系统,x86-CPU构架从开机加电到执行main函数之前的过程分三步完成:1.启动BIOS,准备实模式下的中断向量表和中断服务程序2.从启动盘加载操作系统程序到内存,加载操作系统程序的工作是利用第一步中准备的中断服务程序实现的3.为执行32位的main函数做过渡工作。注:什么是实模式/保护模式? 1.1 0xFFFF0CPU硬件逻辑设转载 2013-12-10 19:29:18 · 1161 阅读 · 0 评论 -
Linux 的[内存管理]
三种实现:buddy,slab 以及 glibc的malloc.Buddy算法:1. Linux使用页(struct page)来对物理内存进行管理,这个结构体约占40字节,故4G内存存放页结构体需要(40/1024)*4GB = 20MB。实际上内存还分为( ZONE_NORMAL,ZONE_DMA,ZONE_HIGHMEM三个区 )。2. 对于页的分配、释放,Linux用 b原创 2013-10-24 16:15:42 · 683 阅读 · 0 评论 -
P2P穿透UDP/TCP原理
转自: 前言 NAT技术的出现从某种意义上解决了IPv4的32位地址不足的问题,它同时也对外隐藏了其内部网 络的结构。NAT设备(NAT,一般也被称为中间件)把内部网络跟外部网络隔离开来,并且可以让内部的主机可以使用一个独立的IP地址,并且可以为每个连 接动态地翻译这些地址。此外,当内部主机跟外部主机通信时,NAT设备必须为它分配一个唯一的端口号并连接到同样的地址和端口(原创 2013-09-23 16:13:20 · 795 阅读 · 0 评论 -
多线程安全
项目中需要在多线程环境下,输出日志到标准输出,以下是实现过程。首先,我们需要一个锁类,能够自动初始化,并且降低耦合。/* * locker.h * * Created on: Apr 14, 2012 * Author: joan */#ifndef LOCKER_H_#define LOCKER_H_#include "../OPTION.h"clas转载 2013-08-08 20:51:42 · 576 阅读 · 0 评论 -
多线程--使单线程程序多线程化
将单线程程序改写成多线程程序比直接写多线程程序需要更高的技巧问题一:全局变量对于全局变量,多线程程序可能在线程更新但尚未使用全局变量前进行了线程切换,并让新线程重新改写了该全局变量,这样就造成了原有数据的丢失解决方案:1、全面禁止全局变量,这显然是不现实的。2、每个线程赋予其私有的全局变量,每个线程都保存一个全局变量的私有副本,以避免冲突转载 2013-07-04 23:10:41 · 1740 阅读 · 0 评论 -
多线程、多核
多核编程中的负载平衡难题http://blog.csdn.net/drzhouweiming/article/details/1568364原创 2013-07-04 23:25:55 · 664 阅读 · 0 评论 -
Windows 查看端口
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用原创 2013-05-16 19:54:50 · 455 阅读 · 0 评论 -
其实Unix很简单
其实Unix很简单 陈皓 很多编程的朋友都在网上问我这样的几个问题,Unix怎么学?Unix怎么这么难?如何才能学好?并且让我给他们一些学好Unix的经验。在绝大多数时候,我发现问这些问题的朋友都有两个特点:1)对Unix有畏难心理,对其没有信心;2)喜欢用拿Windows来和Unix做比较。 这两种特点就像两个“心理暗示”,暗示着自转载 2013-04-02 15:17:43 · 493 阅读 · 0 评论 -
Linux 下的I/O
关键词:同步异步,阻塞非阻塞,事件。Linux下的I/OLinux的I/O机制经历了一下几个阶段的演进:(1)同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。(2)同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。(3)异步阻塞I/O: 用户进程可以对I/O事件进行阻转载 2013-04-02 10:34:37 · 436 阅读 · 0 评论 -
[转】BIOS中断大全
BIOS中断:1、显示服务(Video Service——INT 10H) 00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标位置0EH —在Teletype模式下显示字符03H —读取光标信息0FH —读取显示器模式04H —读取光笔位置10H —颜色05H —设置显示页11H —字体06H、07H —初始化或转载 2012-04-07 22:08:34 · 406 阅读 · 0 评论 -
windows 开发技术
Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭: 1985~1991年:C搭配Windows API。目前我们已很少用C和Windows API写程序了,但还是有必要熟悉这样的技术,因为有些特殊的时候会用到。 1992~2001年:C++搭配MFC链接库(这段时间也是Visual Basic最风光的时候)。在历史上MFC是最多人原创 2010-05-08 03:15:00 · 544 阅读 · 1 评论 -
实模式与保护模式切换
四.实模式与保护模式切换实例本文介绍两个实现实模式与保护模式切换的实例,通过他们说明如何实现实模式与保护模式的切换, 也说明保护模式下的80386及其编程。 演示实模式和保护模式切换的实例(实例一)实例一的逻辑功能是,以十六进制数的形式显示从内存地址110000h开始的256个字节的值。本实例指定该内存区域的目的仅仅是想说明切换到保护模式的必要性,因为在实模式下不能访问该指定内存区域,转载 2010-04-17 13:08:00 · 865 阅读 · 0 评论 -
IA-32处理器存储管理 实模式到保护模式 段式管理
IA-32 CPU的分段机制和分页机制构成存储管理单元,并从硬件上支持存储管理。在保护方式下,IA-32处理器必须使用分段机制,无法禁止。IA-32处理器通过分段机制由逻辑地址获得32位线性地址,如不采用分页机制,则32位线性地址就是32位物理地址; 如果允许分页,则32位线性地址就是虚拟地址,由分页机制转换成32位物理地址原创 2010-04-17 02:08:00 · 973 阅读 · 0 评论 -
IA初始化后状态 实地址模式 保护模式 任务管理
IA处理器初始化: P4,P6,Pentium寄存器 EFLAG: 0000 0002HEIP: 0000 FFF0HCR0: 0600 0010HCR2,CR3,CR4:原创 2010-04-16 22:24:00 · 843 阅读 · 0 评论 -
The IA Software Developer's Manual 之 IA处理器概要
The IA Software Developers Manual有三卷:Volume 1: describes the basic architecture and programming environment of an IA processor; [第一卷描述基本结构和IA处理器的编程环境] Volume 2: desc翻译 2010-04-15 23:02:00 · 502 阅读 · 0 评论 -
记一次内存泄漏排查过
1. 问题由来 使用php脚本查询mysql数据库时,脚本占用内存持续增长。发现这个问题后,解决办法是memory_limit设置为一个较大的值,也凑合用了一年多的时间。 以前在ODP hi群询问过ODP内存泄漏的问题,有部分同学反映也遇到过,解决办法是定时重启脚本或通过调子脚本来避免这个问题。 近期有一次数据导入,虽然数据比较少,但是查询原创 2015-12-30 15:09:34 · 2639 阅读 · 0 评论