Fedora17 正式发布 (附下载地址)
半年一度的发行版,代号Beefy Miracle的Fedora 17 于美国东部时间2012年5月29日上午10点(北京时间2012年5月29日晚上10点)正式发布。
Fedora 17 的主要特性如下:
-
GNOME 3.4 和 KDE 4.8 桌面环境
[……]
半年一度的发行版,代号Beefy Miracle的Fedora 17 于美国东部时间2012年5月29日上午10点(北京时间2012年5月29日晚上10点)正式发布。
Fedora 17 的主要特性如下:
[……]
本文是在CU论坛上回答网友的问题《C语言标准有没有规定前一个语句必须在后一个语句之前完成?》而引发的关于并行处理的一些见解和思考,以下正文
难得OwnWaterloo老兄想起了在下,以及最近我也看到了一些并行方面的帖,就浮上水面说说自己的见解吧。
C语言是典型的Von Neumann体系下的编译性语言:”存储程序并顺序执行”。
70年代初的时候C语言发明和Unix的产生是息息相关的,必须要在一起说明的。当是计算机并行运算并不是很普遍,绝大多数的并行是靠多进程完全任务的,线程还没有被广泛提及,CPU也没有乱序执行的概念。这时候进程间的并行就靠操作系统去隔离,这一点当是的Unix做的非常不错,并由于涉及到Unix设计哲学(简单即美)复杂而高效的多线程在Unix类系统上一直没有得到重视,这也是影响了C语言的产生和发展。C语言设计者也认为C语言应该足够小巧灵活(C语言以控制和处理内部(存)数据为优先任务,个人见解),不要引入太多平台差异的东西,于是I/O功能和后来突飞猛进的并行计算自然只能丢到库中或者干脆完全隔离不予考虑。
[……]
Exercise 3. Implement the sys_env_set_pgfault_upcall system call. Be sure to enable permission checking when looking up the environment ID of the targ[……]
Exercise 1.Implement round-robin scheduling in sched_yield() as described above. Don’t forget to modify syscall() to dispatch sys_yield().
修改kern/sc[……]
LAB3:
Q1.What is the purpose of having an individual handler function for each exception/interrupt? (i.e., if all exceptions/interrupts were delivered[……]
异常处理:
在开启分页的状态下,CPU执行线性地址到物理地址转化的过程中检测到如下条件,就会引起页异常(Page fault)int 14:
1、页目录或者页表项中的存在位为0;
2、当前程序没有足够的权限访问指定页面。
这时CPU会做以下操作:
1、将错误码压入栈中,在14号中断中只有最低三位有效[……]
1、 规定系统最大物理内存为16MB。
2、 应用程序使用0-640K虚拟内存,640K-1M是映射IO空间,1M以上的高位内存只有内核可以使用,4064-4096最高32[……]
Challenge 1: 大页机制的实现
没有在代码中实现,写了个步骤供参考:
0、先把预定义的PGSIZE之类的宏都更改为与大页相匹配的情况。
1、由于页大小变成了4M,所以要修改从代码,要内核4M处加载。
3、page_init()中内存布局也会发生对应变化,低端4M保留给实模式和IO映射,然后[……]
E1:In the file kern/pmap.c, you must implement code for the following functions.
boot_alloc()
page_init()
&nb[……]
系统初始化程序init/main.c主要功能是对系统进行初始化,并切换到用户模式下执行登录程序。
主要步骤如下:
1、系统初始化部分:
// init/main.c void main(void) // 前面代码略,以下是内核进行所有方面的初始化工作。 mem_init (main_me[......]