当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 《操作系统概念》(第六版)第三章 操作系统结构的翻译已经完成。
 

 

    摘要: 关于seh(2) by sssa2000 马家爵被捕了,心中极度的痛苦呀。aaah说我中了毒,mydoom,我下了专杀工具,没发现,现在我变得异常警惕,连rundll32这个进程一看就关。正题。 1、首先,怎么使用seh 昨天我们说的是c++中封装好的东西,现在我们接触的是赤裸裸的seh哦。 seh工作原理就是预先设置好处理异常的函数,然后如果有异常 首先,要使用seh必须先设置处理异常的回调......
 ·the c# programming language notes    »显示摘要«
    摘要:1,不彻底的abstract 即使是abstract class,也不能对实现的接口的某个成员视而不见,即下面这样是不允许的: interface in_one{ void a();} abstract class base_one : in_one{ } 这一点上还是java方便,不管c#的初衷是什么 2,out参数与指针的指针 out子类不能转化为out基类,如果允许转换的化,将无法保证类型安......


《操作系统概念》(第六版)第三章 操作系统结构 翻译

«操作系统概念»(第六版)第三章 操作系统结构的翻译已经完成.详细内容请见http://www.tulipsys.com

可以从几个有利的位置来观察一个操作系统.首先是分析它所提供的服务.其次是分析它向用户与程序员提供的接口.最后是分析系统组件与这些组件之间的联系.本章我们将研究操作系统的这三个特征,并展现用户.程序员以及操作系统设计者的观点.我们要考虑:操作系统提供了什么样的服务.它是怎样提供这些服务的,以及设计这样的系统需要什么样的方法学理论. 【程序编程相关:vb6中word编程总结

操作系统提供了执行程序的环境.在内部,操作系统的构成相当不同,它们沿着一些不同的思路组织.新的操作系统的设计是主要的工作(major task).设计之前必须要明确定义系统目标.针对所期望的系统类型选择算法与策略. 【推荐阅读:採用Direct3D實作四叉樹LOD之經

构造像操作系统这样大型的复杂的系统就必须要将它划分成许多小块(piece,可以理解为子系统).每一小块必须是系统某一部分的详细定义,这包括输入.输出与功能.显然,不是所有的系统都有着同样的结构.然而许多现代操作系统有着同样的目标,就是支持从3.1.1节到3.1.8节所列出的系统组件. 【扩展信息:VC编程经验汇总(三)

3.1 系统组件

3.1.1 进程管理

程序本身并不能做什么,只有在cpu执行它的指令时才能有所作为.可以把进程看作是正在运行的程序,但是当我们进一步研究时,对进程的定义将更为普遍.一个分时用户程序(如编译器)是一个进程.个人用户在pc上运行的字处理程序是一个进程.一个系统任务(如输出到打印机)也是一个进程.现在,我们认为进程是一个作业或分时程序,但是,稍后你将明白这个概念更加普遍.在第四章中将会看到我们可以提供允许进程创建与其并发执行的子进程的系统调用.

进程需要特定的资源(包括cpu时间.内存.文件与i/o设备)来完成工作.这些资源或者在进程创建时分配给它,或者在其运行时.除了在进程创建时所获得的各种物理资源与逻辑资源以外,各种各样的初始化数据(或输入)也可能一同传送.例如,考虑一个能够在终端的显示屏上显示一个文件状态的进程.这个进程将获得包含输入的文件名,并且将执行相应的指令与系统调用来获取所期望的信息并显示在终端上.

我们着重强调一个程序本身不是一个进程;程序是一个静态实体(passive entity)(像是存储在磁盘中的文件的内容),而进程是一个动态实体(active entity),它由一个程序计数器指明要执行的下一条指令.进程必须要按顺序执行.cpu执行完进程的一条指令后再执行下一条,直到进程结束.更进一步讲,最多执行一条代表该进程的指令.这样,从来就不会出现两个独立运行的序列.一个程序在运行时创建多个进程是非常普遍的.

在系统中,进程是工作单元.这样的系统由进程集合构成,有些是操作系统进程(那些执行的系统代码),其它的是用户进程(那些执行的用户代码).通过对cpu的多路复用,所有的这些进程可以被并发执行.

操作系统要负责下列与进程管理相关的工作:

·创建与撤销用户及系统进程

·挂起与恢复进程

·提供进程同步机制

·提供进程通信机制

·提供死锁处理机制


...   下一页
 ·一维指针遍历二维数组    »显示摘要«
    摘要:前日于清华编程技术版看到一个帖子,说谭浩强的书中有一段代码,不能通过编译,代码如下: main(){ int a[ 5 ][ 5 ], *p; p = a; *( *( p + 1 ) + 1 ) = 10;} 问题是显然的,一维指针被当成二维指针使用,本来问题到此结束。我却自以为是的发表了如下观点:指针的运算是按维数进行的。而你学了数据结构就该知道无论是一唯还是多维,都线性存储的,这就意味者指针......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE