操作系统
iefswang
Just for memory
展开
-
【转】ARM Linux系统的时钟机制【修改版】
1. Linux下有两类时钟:1.1 实时钟RTC 它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。1.2 系统时钟 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,转载 2012-04-23 16:29:43 · 1889 阅读 · 0 评论 -
《Orange's 一个操作系统的实现》读书手记2--- [ 搭建你的工作环境]
搭建你的工作环境古人云:“工欲善其事,必先利其器”。是的,俗话也说:“磨刀不误砍柴工”,先让我们放慢脚步,精心地打造传说中的Bochs吧。2.1 虚拟计算机Bochs简单来讲,它相当于运行在计算机内的小计算机。这个好理解,我用的vmware不就是这样的东东嘛。不过,现在看来,我得让Bochs成为包含在vmware中的“小小计算机”了。2.1.1 Bochs转载 2012-12-31 14:22:35 · 2717 阅读 · 0 评论 -
linux启动过程分析与PC开机启动分析
Linux 启动过程详解【转】 摘自:《嵌入式Linux应用程序开发详解》 一、概述用户开机启动 Linux 过程总体上是这样的:首先当用户打开 PC 的电源时,CPU 将自动进入实模式,并从地址 0xFFFF0 开始自动执行程序代码,这个地址通常是 ROM-BIOS 中的地址。这时 BIOS 进行开机自检,并按 BIOS 中设置的启动设备(通常是硬盘)进行启动,接着启动设备上转载 2012-05-19 15:26:54 · 851 阅读 · 0 评论 -
tty、console的区别理解
控制台是什么?我们经常说的控制台,就是指控制台终端(/dev/ttyn, console,在UNIX系统中计算机显示器就叫做控制台终端)。通常pc,显示器和键盘构成控制台。并且控制台终端与一些设备特殊文件关联:tty0、tty1、tty2。。。ttyn通常情况下/dev/console与tty0关联。 ttyn:ttyn是虚拟终端。有tty1-tty6,通过CTRL+ALT原创 2012-05-13 16:56:08 · 8935 阅读 · 0 评论 -
【转】秒杀多线程第五篇 经典线程同步 关键段CS
上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面是这四个函数的原型和使用说明。 函数功能:初始化函数原型:voidIni转载 2012-04-22 09:26:43 · 356 阅读 · 0 评论 -
【转】秒杀多线程第四篇 一个经典的多线程同步问题
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,现在来个复杂点的。这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。 程序描述:主线程启动10个子线程并将表示子线程序号的变量地址作为参数传递给子线程。子线程接收参数 -> sleep(50) ->全局变转载 2012-04-22 09:24:38 · 475 阅读 · 0 评论 -
【转】秒杀多线程第七篇 经典线程同步 互斥量Mutex
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》 前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥量与关键段的行为非常相似,并且互斥转载 2012-04-22 09:16:14 · 425 阅读 · 0 评论 -
【转】秒杀多线程第三篇 原子操作 Interlocked系列函数
上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录用一个线程模拟,线程运行时会将一个表示计数的变量递增。程序在最后输出计数的值表示有今天多少个用户登录,如果这个值不等于我们启动的线程个数,那显转载 2012-04-22 09:22:38 · 480 阅读 · 0 评论 -
【转】秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex? 使用多线程其实是非常容易的,下面这个程序的主线程会创建了一个子线转载 2012-04-22 09:20:13 · 513 阅读 · 0 评论 -
【转】秒杀多线程第六篇 经典线程同步 事件Event
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇 一个经典的多线程同步问题》《秒杀多线程第五篇 经典线程同步关键段CS》 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。首先介绍下如何使用事件。事件Event实际上是个内核对象,它的使用非常方便。下面转载 2012-04-22 09:27:31 · 454 阅读 · 0 评论 -
《orange'S一个操作系统的实现》 笔记
简述:跟着《orange'S一个操作系统的实现》一书进行操作,将其中需要注意的过程记录下来。 第1章 略。第2章 搭建bochs开发环境参考链接 《Orange's 一个操作系统的实现》读书手记2--- [ 搭建你的工作环境] 计算机环境:ubuntu10.04TLSbochs是由C++编写的,我们要安装相应的编译环境sudo apt-get insta原创 2012-12-31 14:08:23 · 4698 阅读 · 1 评论