搜档网
当前位置:搜档网 › pintos project2 无法加载正确运行用户程序

pintos project2 无法加载正确运行用户程序

pintos project2 无法加载正确运行用户程序
pintos project2 无法加载正确运行用户程序

我的系统版本

Ubuntu 12.04 AMD64的

gcc 4.6.3的。

装了pintos 和bochs

pintos project1 已经通过。27个test已经通过

现在的问题:

进入project2 后出现了用户文件加载失败。照网上的一个改法,改了后又出现page fault at c0000008.

下面先看一下是怎么遇到问题的。

我是照那个英文的官方文档做的:

1.编译example里的文件,这是我们用的用户文件。

wyg@wyg-pc:~$ cd OSstep/pintos8/src/examples/

wyg@wyg-pc:~/OSstep/pintos8/src/examples$ make

完成后如下:

我们要用的是里的echo可执行文件

2.进入src/userprog 文件夹

3.然后make 编译好后在当前目录下出现了build 文件夹

4.进入build文件夹:cd build

5.制作大小为2M的虚拟硬盘:pintos-mkdisk filesys.dsk --filesys-size=2

此时多了一个filesys.dsk,这就是虚拟硬盘了。

6.格式化虚拟硬盘pintos -f -q

出现上图说明成功。。

7.复制echo文件到pintos 的虚拟硬盘filesys.dsk

pintos -p ../../example/echo -a echo -- -q

执行后出现:

说明成功。

8.接下来运行用户文件pintos run echo

为什么不是pintos run ‘echo x’呢?因为我们还未实现参数分离功能,这样会把”echo x”

当成一个文件名,显然不存在”echo x”这个文件,加载,必然失败。

看似成功了,其实不然,当然也有可能成功了,如果你已经成功,那就不必做任何修改。

如何验证成功与否,后面会提到。

我就在这种失败的情况下写了好久,最后发现,根本没有加载echo文件。

9.打开src/userprog/process.c

找到start_process (void *file_name_)函数

如下图修改:选中的是要新加的

然后make

再pintos run echo

我是很不幸,出现load user program failed-_-!

唉,program 打错了。。只是个输出提示而已。。

但已经证明的是用户程序echo根本没有加载。。。

10.于是我百度了下,原来是elf文件有问题。这个echo 是个elf文件,但是其中的入口地址是0x0000000. 而pintos 去不映射0x1000以下的内存,所以失败了。

11.找到load函数,经过调试发现是下图中的if(validate_segment(&phdr, file))失败了,

12.所以进入validate_segment(&phdr, file)这个函数,找到问题所在了。原来是

if(phdr->p_vaddr>PGSIZE)失败了

于是我照网上据说,把if(phdr->p_vaddrp_offset

还要改load 函数中代码,如下图选中部分为新加的。

这样做是在pintos 内部改了用户程序的入口地址,以满足pintos 的要求。

这是我在网上看到的。

.我们在载入elf文件时需要做一系列检查,主要是为了确认elf文件的存储空间占用情况,

代码段入口等。这些信息一般都保存在elf文件的executable header和program header

里。在这里,我们遇到了一个小问题导致载入elf文件失败,需要载入的elf文件的header中标明,

第一个loader部分占用虚存从0x000000开始,然而pintos操作系统默认虚存的低0x1000位

置不被映射,即第0页不被映射,但是我们注意到,首个loader段实际用到的地址是从offset 开

始的,正好是0x1000,那么函数validate_segment()的判别机制要有所修改,将if (phdr>

p_vaddr < PGSIZE)改为if (phdr>

p_offset < PGSIZE)。这样做的话可

以成功载入elf文件,不过这么做的后果是分配用户内存空间时,仍就会映射到虚存的第0页,这是

pintos所不允许的,为了解决这个问题,我们在函数load()里做一下修改,如果我们发现读出的

mem_page==0,我们需要手动将其设置为0x1000,这样做实际上是将一个条件判断所作的工作手动

实现了,因为我们无法控制由make得到的elf文件,我们只能从load函数中做修改。

13.接下来还是make

pintos run echo

又有问题:出现了page fault at 0xc0000008

14. rights violation error reading page in user context

用户程序访问了内核的页,所以出现了page fault

15我们反汇编一下用户程序echo

方法是:objdump -d ../../example/echo >echo.txt

用vi编辑器打开生成的echo.txt文件

vim echo.txt

仔细观察发现问题了:

在08048130:<_start>:中,开始两行就有问题sub $0x1c,%esp

mov 0x24(%esp),%eax

我也不知道这是干什么。

但是0x24-0x1c=8

不就是c0000008?

现在我们须要知道pintos的用户栈的范围

PHYS_BASE=0xC0000000 也就是3G

再看看pintos 源代码中设置用户栈的函数

在load()函数中有调用,如下图

找到setup_stack()函数的实现代码:

看这个函数发现,esp被设置成了PHYS_BASE (*esp=PHYS_BASE)

也就是说,用户的栈指针esp=0xc0000000

当然栈是向下扩展的,把数据压入栈只会让esp减小,不会越界访问大小PHYS_BASE的内存,可是

sub $0x1c,%esp //esp=esp-0x1c

mov 0x24(%esp),%eax //把内存(esp+0x24)这个地址里的内容装入eax

这两句,先把esp 减小0x1c,又要访问esp+0x24内存位置的数据。

那esp不就是0xc0000000-0x1c+0x24=0xc0000008了,这就是在用户程序中访问了核心内存,引发了page fault at c0000008.

解决方案:

既然是这样,那我们在

setup_stack()函数中把esp减小8不就OK了?

看下图:

我减了0x20,只要大于8就行。

这样做会不会引发什么问题呢?我也不清楚,在此时:2013年8月25日17:26分我还不清楚,但是后续写代码中如果遇到问题再补充。

我的思考:

当代码从高优先级ring0到低优先级ring3切换时要切换栈,要复制ring0 的栈里的一部分东西到ring3的栈,此时我们这样做,可能会找不到ring0代码传给ring3代码的参数。。。

16.再次make

pintos run echo

出现了system call! 这里是由于我们没有实现系统调用,而printf函数要调用write.

这个我们要后来实现。

17.

当然,经过几天的纠结,你可能还是不相信现在就OK了,我这里有一个证明方法:

虽然目前在echo 中不能使用printf 函数; 我已经想办法证明了echo这个用户程序已经被运行了。。证明方法:我在echo.c中加入

了 int *t=0xC0000008; *t=3;编译.....弄好,运行后:出现了

page fault at 0xC0000008,无权访问这个位置。我又改了*t=0xC0000009,运行后出现page fault at 0xC0000009;这说明了*t=3;这句运行了,也就是说运行到了echo.c中的代码。我还在调试的时候在

syscall_handler()

{

printf("system call"); //在这句设了断点

}

在gdb中用bt指令看了调用栈,发现,如果在echo.c中有printf 函数,的确是在 write 这个函数中执行了int 0x30. 而删除了echo.c中所有printf 函数,当然echo.c中其实那个main函数已经是空的了,此时在tell 这个函数中执行了int 0x30;

原因尚未搞清楚。。不过,每个用户程序结束时都要调用exit这个函数,里面也有int 0x30..总之现在可以确定的是,用户程序(echo)已经可以被加载并且执行了。。接下来应该可以进入任务了,完成那些系统调用。。。

18.这样的用户程序和main线程是同一优先线,将被交替执行

可能出现了用户程序还没运行完而main线程先结束,这就是为什么上而的system call!会出现在Execution ‘echo’ complete之后。

当然这是要通过实现process_wait()函数来解决父子进程同步问题。现在我们只要把用户进程优先级改高一些,做个测试。

看到,用户进程的优先级被设为了PRI_DEFAULT+1,而main线程的优先级为PRI_DEFAULT

还是make

pintos run echo

看到systmep call!已经在

Executing ‘echo’和 Execution of ‘echo’ complete.

之间了。。

-----------------2013年8月25日

今日阅读英文文档,猛然发现

3.2 Suggested Order of Implementation

We suggest first implementing the following, which can happen in parallel:

? Argument passing (see Section 3.3.3 [Argument Passing], page 29). Every user program will page fault immediately until argument passing is implemented.

For now, you may simply wish to change

*esp = PHYS_BASE;

to

*esp = PHYS_BASE - 12;

in setup_stack().

真是欲哭无泪。。这么多天白折腾了。。

--------------------2013年8月26日星期一7时56分51秒

声律启蒙十五删

xīnɡduìfèi,fùduìpān 兴对废,附对攀 lùcǎo duìshuānɡjiān 露草对霜菅 ɡēlián duìjièkòu 歌廉对借寇 xíkǒnɡduìxīyán 习孔对希颜 shān lěi lěi,shuǐchán chán 山垒垒,水潺潺 fènɡbìduìtàn huán 奉璧对探镮 lǐyóu ɡōnɡ dàn zuò 礼由公旦作 shīběn zhònɡníshān 诗本仲尼删lǘkùn kèfānɡjīnɡbàshu ǐ 驴困客方经灞水 jīmínɡrén yǐchūhánɡuān 鸡鸣人已出函关 jǐyèshuānɡfēi 几夜霜飞 yǐyǒu cānɡhónɡcíběi sài 已有苍鸿辞北塞 shùzhāo wùàn 数朝雾暗 qǐwúxuán bào yǐn nán shān 岂无玄豹隐南山 【解析】 兴对废,附对攀,露草对霜菅 兴废,兴盛和衰废。 [南朝梁] 刘勰《文心雕龙.史传》云:”表微盛衰,殷鉴兴废。” 《大宋宣和遗事.元集》云:”上下三千余年,兴废百千万事。” 攀,向上爬;附,靠近,依从。有成语“攀龙附凤”比喻依附权贵以成就功业。亦比喻依附有声望的人以立名。 [汉] 扬雄《法言·渊骞》:“攀龙鳞,附凤翼,巽以扬之,勃勃乎其不可及也。”唐·杜甫《洗兵马》:攀龙附凤势莫当,天下尽化为侯王。 露草:沾露的草。 [唐] 李华《木兰赋》:“露草白兮山凄凄,鹤既唳兮猿復啼。”[清] 谭嗣同《武昌夜泊》诗之二:“露草逼蛩语,霜花凋雁翎。”

霜菅:霜后枯萎的菅草。用以比喻白发。[宋] 苏轼《再用前韵(追饯正辅表兄至博罗赋诗为别)》:“乐天双鬢如霜菅,始知谢遣素与蛮。” [宋] 陆游《怀昔》诗:“岂知堕老境,槁木蒙霜菅。” 歌廉对借寇,习孔对希颜 歌廉歌颂廉范。 《后汉书》记载,东汉名臣廉范,字叔度,任蜀郡太守时为官清廉,更改禁民夜作旧令,让百姓储水以防火,百姓掌灯夜作,日渐丰裕。百姓歌曰:“廉叔度,来何暮,不禁火,民安作,昔无襦,今五衿”。 借寇挽留寇恂。 汉名臣寇恂,字子翼,历任河内、颍川、汝南太守。治理颍川期间颇有政绩,升迁离任后,次年随光武帝再至颍川平寇,所到之处群寇望风而降,百姓们纷纷于帝驾之前拦道,请求再借寇恂在颍川任职一年。后就用“借寇”表示挽留地方官,含有对政绩的称美之意。 习孔希颜:学习孔子,效仿颜回。习、希:都是学习和效仿的意思。 山垒垒,水潺潺 山垒垒垒垒:重叠的样子。《文选·曹丕·善哉行》:“还望故乡,鬱何垒垒。”[明]何景明《雁门太守行》诗云:“垒垒高山,莽莽代谷。” 水潺潺溪水徐徐流动。[三国]曹丕《丹霞蔽日行》云:“谷水潺潺,木落翩翩。” [唐] 杜牧《中秋日拜起居表晨渡天津桥即事十六韵献》诗云:“楼齐云漠漠,桥束水潺潺”。[唐] 李涉《竹枝词》诗云:“荆门滩急水潺潺,两岸猿啼烟满山”。 奉壁对探镮 奉璧即蔺相如“完璧归赵”典故。(参见本系列第十六讲:《作赋观书双雄事,回文锦字几华章?》中“奉璧蔺相如”一句之详解。) 探镮亦作“探环”。《晋书·羊祜传》载,西晋大臣羊祜(此前“羊公德大,邑人竖堕泪之碑”以及“叔子带”都曾讲到他)五岁时,叫乳母把他玩过的金环取来,乳母说:“你没有这种玩具呀!”羊祜就自己爬到邻居李家的树上,

计算机操作系统实验_运行用户态程序

西北工业大学操作系统实验实验报告 一、实验目的 掌握在GeekOS系统用户态模式下加载并运行可执行程序的方法。 二、实验要求 1. 按照实验讲义P127页中的设计要求,实现在用户态模式下加载并运行可执行程序的代码,给出关键函数的代码以及实验结果。 三、实验过程及结果 答:核心函数代码如下: ================== user.c =============== //产生一个进程(用户态) int Spawn(const char *program, const char *command, struct Kernel_Thread **pThread) { //TODO("Spawn a process by reading an executable from a filesystem"); int rc; char *exeFileData = 0; ulong_t exeFileLength; struct User_Context *userContext = 0; struct Kernel_Thread *process = 0; struct Exe_Format exeFormat; if ((rc = Read_Fully(program, (void**) &exeFileData, &exeFileLength)) != 0 ) { Print("Failed to Read File %s!\n", program); goto fail; } if((rc = Parse_ELF_Executable(exeFileData, exeFileLength, &exeFormat)) != 0 ) { Print("Failed to Parse ELF File!\n"); goto fail; } if((rc = Load_User_Program(exeFileData, exeFileLength, &exeFormat, command, &userContext)) != 0) { Print("Failed to Load User Program!\n"); goto fail; } //在堆分配方式下释放存并再次初始化exeFileData Free(exeFileData); exeFileData = 0;

(完整版)声律启蒙十四寒(详细注解及典故来历)

duō duìshǎo,yì duì nán 多对少,易对难 hǔ jù duì lónɡ pán 虎踞对龙蟠 lónɡzhōu duìfènɡniǎn 龙舟对凤辇 bái hè duìqīnɡ luán 白鹤对青鸾 fēnɡxīxī,lù tuán tuán 风淅淅,露漙漙 xiùɡǔ duìdiāoān 绣毂对雕鞍 yú yóu hé yèzhǎo 鱼游荷叶沼lù lìliǎo huātān 鹭立蓼花滩 yǒu jiǔruǎn diāo xī yònɡjiě 有酒阮貂奚用解 wú yú fénɡ jiá bìxū tán 无鱼冯铗必须弹 dīnɡɡùmènɡsōnɡ 丁固梦松 kē yèhū rán shēnɡ fùshànɡ 柯叶忽然生腹上 wén lánɡ huà zhú 文郎画竹 zhīshāo shūěr zhǎnɡ háo duān 枝梢倏尔长毫端

hán duìshǔ,shī duìgān 寒对暑,湿对干 lǔyǐn duì qí huán 鲁隐对齐桓 hán zhān duìnuǎn xí 寒毡对暖席 yèyǐn duì chén cān 夜饮对晨餐 shūzǐ dài,zhònɡ yóu ɡuān 叔子带,仲由冠 jiárǔ duì hán dān 郏鄏对邯郸 jiā héyōu xià hàn 嘉禾忧夏旱shuāi liǔ nài qiū hán 衰柳耐秋寒 yánɡliǔlǜzhē yuán liànɡ zhái 杨柳绿遮元亮宅 xìnɡhuāhónɡyìnɡzhònɡ ní tán 杏花红映仲尼坛 jiānɡshuǐ liúchánɡ 江水流长 huán rào sìqīnɡ luó dài 环绕似青罗带 hǎi chán lún mǎn 海蟾轮满 chénɡmínɡ rú bái yù pán 澄明如白玉盘 【解析】 寒对暑,湿对干,鲁隐对齐桓。 鲁隐:春秋鲁国第十四代君主,隐公姬息姑。孔子所作之《春秋》就起于鲁隐公元年(前722)。由于春秋以鲁国国史为基础而编,故当时的国际大事都是以鲁国纪年来记录。鲁隐公也因为其纪年年号常被提及而出名。 齐桓:春秋齐国桓公姜小白,是春秋五霸之首。是历史上第一个代替周天子充当盟主的诸侯。齐桓公晚年昏庸,管仲去世后,任用易牙、竖刁等小人,最终在内乱中饿死。 寒毡对暖席 寒毡:唐代画家郑虔,享有“诗书画三绝”之誉,与李白、杜甫为诗酒朋友,却生活清贫。杜甫曾经赠以诗曰:‘才名四十年,坐客寒无毡’云。”后以“寒毡”形容寒士清苦的生活。

声律启蒙全文详解

《声律启蒙》全文详解 一东1 ————————注释———————— 1一东:“东”指“东韵”,是宋金时期的“平水韵”(也叫“诗韵”)中的一个韵部。“东”叫韵目,即这个韵部的代表字。东韵中包含有许多字,它们的共同点便是韵母相同(当然是指隋唐五代两宋时期的读音),像下面的三段文字中,每个句号之前的那个字,即风、空、虫、弓、东、宫、红、翁、同、童、穷、铜、通、融、虹等15字,尽管在现代汉语中的韵母并不完全相同,但都同属于东韵,如果是作格律诗,这些字就可以互相押韵。“一”,是指东韵在平水韵中的次序。平水韵按照平、上、去、人四个声调分为106个韵部,其中因为平声的字较多,故分为上下两个部分,东韵是上平声中的第一个韵部。后面的“二冬”、“三江”等情况也相同,不再一一说明。 云对雨,雪对风。晚照对晴空。来鸿对去燕,宿鸟对鸣虫。 三尺剑,六钧弓1。岭北对江东。人间清暑殿,天上广寒宫2。 两岸晓烟杨柳绿,一园春雨杏花红。 两鬓风霜,途次早行之客;一蓑烟雨,溪边晚钓之翁3。 ————————注释———————— 1这一联是两个典故。上联出自《史记·高祖本纪》。汉朝的开国君主刘邦曾经说:我以普通百姓的身份提着三尺长的宝剑而夺取了天下。下联出自《左传》,鲁国有个勇士叫颜高,他使用的弓为六钧(钧为古代重量单位,一钧三十斤),要用180斤的力气才能拉开。2清暑殿:洛阳的一座宫殿。广寒宫:《明皇杂录》说,唐明皇于中秋之夜游月宫,看见大门上悬挂着“广寒清虚之府”的匾额,后代便以广寒宫代指月宫。3次:军队临时驻扎,引申为一

般的短暂停留。途次,旅途的意思。 沿对革,异对同1。白吏对黄童2。江风对海雾,牧子对渔翁。 颜巷陋,阮途穷3。冀北对辽东。池中濯足水,门外打头风4。 梁帝讲经同泰寺,汉皇置酒未央宫5。 尘虑萦心,懒抚七弦绿绮;霜华满鬓,羞看百炼青铜6 ————————注释———————— 1沿:沿袭、遵照原样去做。革:变化、变革。2黄童:黄口之童,即儿童。黄,黄口,雏鸟的喙边有一圈黄色的边,长大就消失,故以黄口喻指年龄幼小的。3这是两个典故。上联出自《论语·雍也》,颜指颜回(字子渊),孔子的学生。孔子称赞他说:“一箪食、一瓢饮、在陋巷,人不堪其忧,回也不改其乐。贤哉,回也!”(吃一竹筐饭食,喝一瓢凉水,住在偏僻的巷子里,别人忍受不了这种贫穷,颜回不改变他快乐的心情。颜回呀,真是个贤人!)下联出自《晋书·阮籍传》。阮指阮籍(字嗣宗),魏晋时代人,博览群书,好老庄之学,为竹林七贤之一。《晋书》记载,阮籍经常驾车信马由缰地乱走,走到无路可走的时候便大哭而返。穷,到……的尽头,此处指无路可走之处。4濯(音zhuó)足水:屈原《渔父》中有“沧浪之水清兮,可以濯我缨;沧浪之水浊兮,可以濯我足”的句子,故濯足水指污水。打头风:行船时所遇到的逆风。5梁帝:南朝的梁武帝萧衍。他笃信佛教,经常和高僧们在同泰寺研讨佛经。汉皇:汉朝的开国之君刘邦。他曾宴请群臣于长安的未央宫,接受群臣的朝贺。6尘虑:对尘世间琐碎小事的忧虑。萦:缠绕。绿绮:琴名,据说汉代的司马相如曾弹琴向卓文君求爱,卓文君就用绿绮琴应和他。霜华:即霜花(“华”为“花”的古字),借指白发。百炼青铜:借指镜子,古人用青铜镜照面。 贫对富,塞对通。野叟对溪童。鬓皤对眉绿,齿皓对唇红1。 天浩浩,日融融2。佩剑对弯弓3。半溪流水绿,千树落花红。

(完整版)《声律启蒙》最全注解与译文(五微)

上:五微 来对往,密对稀,燕舞对莺飞。风清对月朗①,露重对烟微。 霜菊瘦,雨梅肥,客路对渔矶②。晚霞舒锦绣,朝露缀珠玑③。 夏暑客思欹石枕,秋寒妇念寄边衣④。 春水才深,青草岸边渔父去;夕阳半落,绿莎原上牧童归⑤。 【注释】 ①朗:月光明亮。 ②(jī)矶:水边的石滩或突出的大石头。 【原文】来对往,密对稀,燕舞对莺飞。风清对月朗,露重对烟微。霜菊瘦,雨梅肥,客路对渔矶。 【译文】来和往相对,密集和稀疏相对,春燕轻舞和黄莺翻飞相对。清风和明月相对,浓重的露水和轻轻的炊烟相对,经霜的菊花冷峻清逸,经雨的梅子果繁叶茂。他乡的曲折小路和水边突出的岩石相对。 ③朝:早晨。珠玑:珍珠的统称。圆者为珠,不圆者为玑。 ④(qī)欹:不正、倾斜,这里是斜靠着、斜倚着的意思。念:想着。边衣:供戍守边防的战士穿的衣裳。古代军队战士的衣服(特别是寒衣)要由家中的妻子寄送。 【原文】晚霞舒锦绣,朝露缀珠玑。夏暑客思欹石枕,秋寒妇念寄边衣。 【译文】七彩的晚霞,犹如锦绣铺满天空;早晨的露珠晶莹剔透,犹如大大小小的珍珠。盛夏的时候,身在他乡作客的人躺在石板上纳凉思念家乡,秋天转寒时,妻子为戍守边疆的丈夫捎寄棉衣。 ⑤莎:草名,即香附。其块茎叫香附子,呈细长的纺锤形,可入药。 【原文】春水才深,青草岸边渔父去;夕阳半落,绿莎原上牧童归。 【译文】春天的水面,天色刚刚暗下来,青草岸边的渔夫就回家去了;夕阳还在半山腰,绿绿的草原上已有牧童归来。 宽对猛,是对非①,服美对乘肥②。珊瑚对玳瑁,锦绣对珠玑③。 桃灼灼,柳依依④,绿暗对红稀⑤。窗前莺并语,帘外燕双飞。 汉致太平三尺剑,周臻大定一戎衣⑥。 吟成赏月之诗,只愁月堕;斟满送春之酒,惟憾春归。 【注释】 ①宽对猛:宽指政策宽缓,猛指政策严厉,《左传》昭公二十年说:“宽以济猛,猛以济宽,政是以和。”(宽缓的政令和严厉的政令互相补充调剂,国家的政局就能上下和谐。) ②乘:乘坐。此处动词做名词用,指乘坐的马匹。是一种借代的修辞手法。也可能出自《论语?雍也》:“乘肥马,衣轻裘。”如此,则“服”和“乘”都应该是动词,而“美”和“肥”才应该看做借代,分别指“美丽的衣服”和“肥壮的马匹”。 ③珊瑚:海洋中一种腔肠动物的骨髓形成的树枝状的东西,颜色多样,可作装饰品。玳瑁:海洋中的一种动物,形状似大龟,背壳有花纹,四肢为鳍足状,甲片可作装饰,亦可入药。 ④此联两句均出自《诗经》。 上联出自《国风?周南?桃夭》,原文为:“桃之夭夭,灼灼其华。”(桃树长得多么茂盛呀,它的花开得像火焰一样。)。夭:盛貌;灼:鲜明,灼灼:鲜明兴盛状。 下联出自《小雅?采薇》,原文为:“昔我往矣,杨柳依依。”(以前我动身去打仗的时候,杨柳随风飘动)。 ⑤“绿暗”指绿叶颜色变深,“红稀”指红花凋谢变少,这都是晚春到初夏的景色。绿和红分别代指绿树和红花,是修辞中的借代手法。 【原文】宽对猛,是对非,服美对乘肥。珊瑚对玳瑁,锦绣对珠玑。桃灼灼,柳依依,绿暗对红稀。窗前莺并语,帘外燕双飞。 【译文】宽容和严厉相对,是和非相对,穿着华丽的衣裳和骑着高头大马相对,形状如花如树,珊瑚和玳瑁相对,精美鲜艳的丝织品和晶莹剔透的珍珠相对。桃花鲜艳夺目,柳树柔弱、随风摇摆,枝叶繁密茂盛和红花零星稀落相对。窗前两只黄营相对鸣叫,帘外一对燕子往来飞舞。 ⑥这是两个典故。 上联出自《史记?高祖本纪》,见一东注。 下联出自《尚书?武成》,书中说周朝“一戎衣,天下大定”,传统的解释是:周武王一穿上打仗的服装(戎衣),就消灭了商纣王,建立周朝,天下安定。(zhēn)臻:至、到。 【原文】汉致太平三尺剑,周臻大定一戎衣。吟成赏月之诗,只愁月堕;斟满送春之酒,惟憾春归。

《声律启蒙》最全注解与译文(三江)知识讲解.docx

《声律启蒙》最全注解与译文 ( 三江 )

上:三江 楼对阁,户对窗,巨海对长江。蓉裳对蕙帐①,玉斝对银釭②。 青布幔,碧油幢③,宝剑对金缸④。忠心安社稷,利口覆家邦⑤。 世祖中兴延马武,桀王失道杀龙逄⑥。 秋雨潇潇,漫烂黄花都满径;春风袅袅,扶疏绿竹正盈窗⑦。 【注释】 ① 蓉裳:绣有芙蓉花的衣裳,这里指绣有荷花的衣裳,比喻高洁; 蕙帐:用惠草做的帷帐, 比喻芳美 . ②(ji ǎ)斝:古代一种铜制的饮酒的器具。( gāng)釭:灯。意思为镶嵌在车( gǔ)毂之中的用来插车轴的铁制套环。 ③ 幢:古代一种用羽毛作装饰的用于仪仗的旗帜。又指佛教用物经幢。经幢有两种:在圆形的长筒状的绸伞上书写 佛经叫经幢,在圆形石柱上雕刻佛经叫石幢。此字还另有一个意思,指张挂于车或船上的帷幕,属于去声绛韵。这里 是用前者的读音、后者的意思来构成对仗,是“借对”的一种。 ④ 釭:原文作“缸”,疑误。东汉刘熙的《释名》说,函谷关以西的方言,称箭簇为“釭”。金釭,金属铸成的箭睐,只有此义方能与“宝剑”构成对仗。 【原文】楼对阁,户对窗,巨海对长江。蓉裳对蕙帐,玉斝对银釭。青布幔,碧油幢,宝剑对金缸。 【译文】楼和阁相对,户和窗相对,浩瀚的大海和滾滾的长江相对。蓉裳和蕙帐相对,玉制的酒器和银制的灯盏相 对。青色的布幔 ,碧绿的油幢,青绿色的油布帷幕,锋利的宝剑和金色的酒缸相对。⑤社稷:国家。社和稷分别指祭 祀土神和谷神的庙,是国家最重要的神庙,故用以代指国家。利口:能言善辩的嘴,代指只说不做的清谈家。家邦: 国家。邦:国。 【原文】忠心安社稷,利口覆家邦. 【译文】忠诚之心能使江山安定,尖利的嘴使国家毁灭。 ⑥这是两个典故。 上联出自《后汉书 ?马武传》。世祖,指光武帝刘秀,因其为首推翻了王莽建立的新朝,建立东汉,恢复了刘姓的 天下,故被称为中兴之主。马武字子张,骁勇善战,刘秀在一次宴会后,曾独自与马武一起登上丛台,延请马武为将 军,率领其精锐部队渔阳上谷突骑。马武十分感激刘秀的知遇之恩,所以忠心不二,在战争中功勋卓著。刘秀称帝后, 马武被封为捕虏将军扬虚侯,为云台二十八将之一。延:请。 下联出自《庄子 ?人间世》。(ji é)桀王指夏朝的亡国之君夏桀,据说他十分残暴。龙逄指夏朝的贤臣关龙逢(“逄”:为“逢”的俗字,音páng)。夏桀荒淫,关龙逢屡次直言进谏,后被囚杀。 ⑦ 黄花:此处特指菊花。扶疏:植物错落有致的样子。 【原文】秋雨潇潇,漫烂黄花都满径;春风袅袅,扶疏绿竹正盈窗 【译文】秋风冷雨,黄花飘落,铺满山路,微微的春风,茂盛的绿竹正遮挡住窗户。 旌对旆,盖对幢①,故国对他邦。千山对万水,九泽对三江②。 山岌岌,水淙淙,鼓振对钟撞③。清风生酒舍,皓月照书窗④。 阵上倒戈辛纣战,道旁系剑子婴降⑤。 夏日池塘,出沿浴波鸥对对;春风帘幕,往来营垒燕双双⑥。 【注释】 ①(pèi)旆:一种旗帜。盖:车盖,古代竖立在车上用来遮阳蔽雨的器具,形状类似现在的雨伞。 幢:张挂于车或船上的帷幕,此处是借对,参考前注。 ② 九泽:指占代分处于九州的九个湖泊,各书记载的名称小有差异,较为通行的说法是:具区(吴)、云梦(楚)、阳 华(秦)、大陆(晋)、圃田(梁)、孟诸(宋)、海隅(齐)、钜鹿(赵)、大沼(燕)。(见于《吕氏春秋? 有始》)三江:古代的三条江,其名称各书记载大不相同。《尚书 ?禹贡》中的“三江”,据唐陆德明《经典择文》的 说法,是指松江、委江、东江。 【原文】旌对旆,盖对幢,故国对他邦。千山对万水,九泽对三江。 【译文】旌和旆相对,车盖和帷幔相对,故国和他邦相对。千山和万水相对,众多湖泽和许多大江相对。

感觉系统

感觉器官练习题 一、单选题 1.下列哪项不属于感觉器官的是( ) A.耳 B.鼻 C.神经D.皮肤 E.以上均错 2.视器包括( ) A.眼球壁和附属结构 B.眼球壁和屈光装臵 C.眼球及其附属结构 D.眼球及其屈光装臵 E.眼球及其眼睑 3.眼球() A.壁仅由巩膜、脉络膜、视网膜构成 B.折光系统包括角膜、房水、晶状体和玻璃体 C.视神经盘是感光最敏锐的部位 D.房水由虹膜分泌形成 E.角膜中央一圆孔称瞳孔 4.巩膜() A.乳白色,厚而坚韧,是硬脑膜的延伸结构 B.前方与晶状体相连C.占纤维膜的前1/6 D.有屈光作用 E.以上均错 5.瞳孔大小() A.随眼压高低而变化 B.随光线强弱而变化 C.由睫状体收缩来调节D.与三叉神经眼神经的作用有关E.随晶状体突度变化而变化 7.眼前房是指() A.角膜与玻璃体之间腔隙 B.角膜与虹膜之间腔隙 C.虹膜与晶状体之 间腔隙 D.虹膜与玻璃体之间腔隙 E.角膜与晶状体之间腔隙 8.黄斑() A.位于视神经乳头(盘)外侧约3-4mm 处 B.感光作用强,但无辨色能力C.中央有中央凹,该处对光不敏感D.视网膜节细胞轴突由此向后穿出眼 球壁 E.此处无感光细胞,称为生理性盲点 9.上直肌收缩时,瞳孔转向()A.上内方 B.下内方 C.上外方 D.下外方 E.外侧 10.上斜肌可使() A.瞳孔转向上外方 B.瞳孔转向下外方 C.瞳孔转向上方D.瞳孔转向外侧 E.瞳孔 转向下方 11.眼球的折光装臵为() A.晶状体 B.角膜、晶 状体 C.角膜、房水、晶状 体 D.角膜、房水、晶状体、玻璃体 E.角 膜、房水、晶状体、玻璃体、视网膜 12.泪道包括() A.鼻泪管、泪小管 B.泪小管、 泪囊 C.泪小管、泪囊、鼻泪管 D.泪点、泪小管、泪囊、鼻泪管 E.泪腺、结膜囊、泪小管、泪囊、鼻 泪管 13.视网膜中央动脉来源于() A.颈内动脉B.颈外动脉 C.椎动脉 D.脑膜中动脉 E.面 动脉 17. 属于生理性盲点的是 A、脉络膜 B、角膜 C、虹膜 D、视轴 E、视网膜中央凹 14. 眼前房与后房的分界是() A.睫状体 B.虹膜 C.脉 络从 D.晶状体 E.玻璃体 15.关于中耳鼓室壁的描述中,何者是错误的() A.上壁为鼓室盖,分隔鼓室与颅中 窝 B.内壁为乳突窦壁 C.下壁为颈静脉壁,将鼓室与颅内 静脉起始部隔开 D.外侧壁为鼓膜 E.前壁为颈动脉壁,此壁上部有咽 鼓管鼓口 16. 位于鼓室内的结构是() A.球囊 B.面神经 C.听 小骨 D.螺旋器(Corti器) E.半规管 17.耳蜗( ) A.由软骨构成B.由蜗管围绕蜗轴约两周半形成的 C.仅分为前庭阶和鼓阶两部分D.前庭阶和鼓阶充满内淋巴 E.以上均不对 18.不属于位觉感受器的是() A.椭圆囊斑 B.球囊斑 C.壶 腹嵴 D.螺旋器 E.以上均不对 19.前庭阶和鼓阶借何结构相通 () A.蜗孔 B.蜗管 C.蜗 窗 D.前庭窗 E.联合管 20.将声波的振动传人内耳的是 () A.听小骨 B.前庭 C.耳

Linux用户态程序计时方式详解

Linux用户态程序计时方式详解 前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较。但要精确测量程序的运行时间并不容易,因为进程切换、中断、共享的多用户、网络流量、高速缓存访问及转移预测等因素都会对程序计时产生影响。本文将不考虑这些影响因素(相关资料可参考《深入理解计算机系统》一书),而仅仅关注Linux系统中用户态程序执行时间的计算方式。除本文所述计时方式外,还可借助外部工具统计耗时,如《Linux调试分析诊断利器——strace》一文中介绍的strace。 本文示例代码的运行环境如下: 一基本概念 1.1 日历时间 Coordinated Universal Time(UTC):世界协调时间(又称世界标准时间),旧称格林威治标准时间(Greenwich Mean Time, GMT)。 Calendar Time:日历时间,即从一个标准时间点到此时的时间所经过的秒数。该标准时间点因编译器而异,但对编译系统而言标准时间点不变。该编译系统中的时间对应的日历时

间都通过该标准时间点衡量,故日历时间是“相对时间”。UNIX/Linux的时间系统由“新纪元时间(Epoch)”开始算起,该起点指定为1970年1月1日凌晨0时0分0秒(格林威治时间)。Microsoft C/C++ 7.0中标准时间点指定为1899年12月31日0时0分0秒,而其它版本的Microsoft C/C++和所有不同版本的Visual C++中标准时间点指定为1970年1月1日0时0分0秒。日历时间与时区无关。 Epoch:时间点。时间点在标准C/C++中是一个整数(time_t),它用此刻的时间和标准时间点相差的秒数(即日历时间)来表示。目前大部分UNIX系统采用32位记录时间,正值表示为1970年以后,负值则表示1970年以前。可简单地估算出所能表达的时间范围:1970±((231-1)/3600/24/365)≈[1901,2038]年。为表示更久远的时间,某些编译器厂商引入64位甚至更长的整型数来保存日历时间。 1.2 进程时间 进程时间也称CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴嗒计算,通常使用三个进程时间值,即实际时间(Real)、用户CPU时间(User)和系统CPU时间(Sys)。 实际时间指实际流逝的时间;用户时间和系统时间指特定进程使用的CPU时间。具体区别如下:

应用程序无法正常启动(0xc0000142)的解决办法

应用程序无法正常启动(0xc0000142)的解决办法 风险提示:修改注册表有风险,您需要提前备份数据并在专业人士指导下慎重操作。 故障现象: 在电脑运行中,有时报错提示,如下图所示,以该报错信息为例,说明如何解决此类问题。 解决方案: 一、确认报错提示的错误文件,是属于哪个应用模块: 1、先找到“标题栏”的提示信息,记录下报错的文件名,这个报错的文件名就是“CWCleantools.exe”。如下图: 2、到搜索引擎(如:百度)上搜索该文件名,下面以百度为例,如下图:

3、在搜索结果中查找该文件是哪个具体应用程序报错,在搜索界面中没有具体的位置显示我们需要的信息,需要自行查看。 如下图所示, ,“CWCleantools.exe” 是 “中国电信3G无线宽带最新连接客户端2.1版本”中的文件,也就是说这个报错提示与 “中国电信3G无线宽带连接客户端”有关。 二、根据搜索结果决定解决方案 通过搜索引擎查询的目的是,找到报错提示的文件是属于哪个应用模块。(如:驱动程序、应用软件、操作系统等)根据文件属于不同的模块,建议如下: (A)如果报错提示文件属于某个明确应用程序:建议升级、重装、卸载这个应用程序测试。 (B)如果报错提示文件属于某个明确驱动程序:建议访问官方网站,下载并安装对应的官方驱动程序测试。 (C)如果报错提示文件属于操作系统文件:建议使用Windows系统还原功能测试。 注:百度等搜索引擎中提供的解决方案为网络共享资料,并非联想官方提供,对解决方案的有效性与可靠性联想不做任何保证。 三、关机时报错:0xc0000142

删除注册表项[HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionAeDebug] 下的相关键值。(提示:修改注册表有风险,您需要提前备份数据并在专业人士指导下慎重操作。)

linux用户态和内核态的转换

linux用户态和内核态的转换 原文链接:https://www.sodocs.net/doc/6717710841.html,/question/363231653.html 当一个任务(进程)执行系统调用而执行内核代码时,称进程处于内核内核态,此时处理器处于特权级最高的(0级)内核代码中执行,当进程处于内核态时,执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。当进程执行用户代码时,称其处于用户态,此时处理器在特权级最低的(3级)用户代码中运行。 当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态,因为中断处理程序将使用当前进程的内核栈。这与处于内核态的进程的状态有些类似。内核态与用户态是操作系统的两种运行级别,跟intel cpu没有必然的联系,intel cpu提供Ring0-Ring3三种级别的运行模式,Ring0级别最高,Ring3最低。 Linux使用了Ring3级别运行用户态,Ring0作为内核态,没有使用Ring1和Ring2。Ring3状态不能访问Ring0的地址空间,包括代码和数据。Linux进程的4GB地址空间,3G-4G部分大家是共享的,是内核态的地址空间,这里存放在整个内核的代码和所有的内核模块,以及内核所维护的数据。用户运行一个程序,该程序所创建的进程开始是运行在用户态的,如果要执行文件操作,网络数据发送等操作,必须通过write,send等系统调用,这些系统调用会调用内核中的代码来完成操作,这时,必须切换到Ring0,然后进入3GB-4GB中的内核地址空间去执行这些代码完成操作,完成后,切换回Ring3,回到用户态。这样,用户态的程序就不能随意操作内核地址空间,具有一定的安全保护作用。 保护模式,通过内存页表操作等机制,保证进程间的地址空间不会互相冲突,一个进程的操作不会修改另一个进程的地址空间中的数据。在内核态下,CPU可执行任何指令,在用户态下CPU只能执行非特权指令。当CPU处于内核态,可以随意进入用户态;而当CPU处于用户态,只能通过中断的方式进入内核态。一般程序一开始都是运行于用户态,当程序需要使用系统资源时,就必须通过调用软中断进入内核态. 使用nm查看用户态程序的符号表内容 使用System.map(内核符号表)查看内核符号表内容 1. 测试程序中打印用户态函数地址,并调用系统调用(在内核中打印系统调用函数地址),用"用户态符号表"和"内核态符号表"示例说明内核态和用户态地址空间的差异 2. 说明内核态地址映射ioremap();用户态地址映射mmap()

应用程序打不开 exe文件关联修复器 打开方式还原 所有应用程序打不开

摘要:有时我们的操作错误会导致exe文件关联错误,使所有的应用程序文件都以不正确的方式打开,例如Win7的Windows Media Center,记事本,浏览器等等,从而无法使用应用程序。那么,怎样进行exe打开方式还原,解决应用程序打不开的问题呢? 关键词:应用程序打不开 exe文件关联修复器打开方式还原所有应用程序打不开 各系统在应用程序打不开时的打开方式还原方式是不同的。下面我们就针对不同的情况进行详细介绍。 如果是XP等系统,解决应用程序打不开的方式非常简单。我们可以用导入注册表文件,更改文件类型关联,命令行等方式进行修改。这里列举一种最为直观、不容易误操作的方式。 打开“我的电脑”,点击上方的“工具”菜单,点击文件夹选项,点击“文件类型”,点击“新建”,在弹出的输入框中输入EXE,点击“高级”,将“关联的文件类型”选为“应用程序”,确定。

此时返回前一窗口,看到下方的打开方式信息,点击右下角的“还原”按钮,然后关闭即可。 但是当遇到vista,Win7这种对系统文件、注册表保护的非常严密的系统,由于权限问题,这些常规方法以及网上较为普遍的exe文件关联修复器都不能起作用了。 那么,Win7,vista下该怎样解决应用程序打不开的问题,进行打开方式还原呢? 第一种方法是在开始-控制面板-用户账户和家庭安全中新建一个管理员账户,在新的账户由于使用了新的用户配置,应用程序打不开的问题就可以解决了。

如果不想新建账户,我们可以利用内核软件达到解决应用程序打不开的目的。首先,打开计算机,找到左上角的“组织”-文件夹和搜索选项。

点击查看,把“隐藏已知文件的扩展名”前的对号去掉。 尝试打开浏览器,一般是可以打开的。如果打不开,找到浏览器的原始目录(比 如.C:\Program Files\Internet Explorer\Iexplore.exe),找到浏览器主程序,重命名,将.exe后缀改为.com。然后去网上下载一个XueTr软件。解压前面下载到的XueTr运行。此时把解压出来的XueTr.exe重命名为https://www.sodocs.net/doc/6717710841.html,,确定两次。打开https://www.sodocs.net/doc/6717710841.html,,转到“系统杂项”,对任意一项,点右键-修复所有,确定。此时exe打开方式还原并恢复正常。

声律启蒙注释

一东1 ————————注释———————— 1一东:“东”指“东韵”,是宋金时期的“平水韵”(也叫“诗韵”)中的一个韵部。“东”叫韵目,即这个韵部的代表字。东韵中包含有许多字,它们的共同点便是韵母相同(当然是指隋唐五代两宋时期的读音),像下面的三段文字中,每个句号之前的那个字,即风、空、虫、弓、东、宫、红、翁、同、童、穷、铜、通、融、虹等 15字,尽管在现代汉语中的韵母并不完全相同,但都同属于东韵,如果是作格律诗,这些字就可以互相押韵。“一”,是指东韵在平水韵中的次序。平水韵按照平、上、去、人四个声调分为 106个韵部,其中因为平声的字较多,故分为上下两个部分,东韵是上平声中的第一个韵部。后面的“二冬”、“三江”等情况也相同,不再一一说明。 云对雨,雪对风。晚照对晴空。来鸿对去燕,宿鸟对鸣虫。 三尺剑,六钧弓1。岭北对江东。人间清暑殿,天上广寒宫2。 两岸晓烟杨柳绿,一园春雨杏花红。 两鬓风霜,途次早行之客;一蓑烟雨,溪边晚钓之翁3。 ————————注释———————— 1这一联是两个典故。上联出自《史记·高祖本纪》。汉朝的开国君主刘邦曾经说:我以普通百姓的身份提着三尺长的宝剑而夺取了天下。下联出自《左传》,鲁国有个勇士叫颜高,他使用的弓为六钧(钧为古代重量单位,一钧三十斤),要用 180斤的力气才能拉开。 2清暑殿:洛阳的一座宫殿。广寒宫:《明皇杂录》说,唐明皇于中秋之夜游月宫,看见大门上悬挂着“广寒清虚之府”的匾额,后代便以广寒宫代指月宫。 3次:军队临时驻扎,引申为一般的短暂停留。途次,旅途的意思。 沿对革,异对同1。白吏对黄童2。江风对海雾,牧子对渔翁。 颜巷陋,阮途穷3。冀北对辽东。池中濯足水,门外打头风4。 梁帝讲经同泰寺,汉皇置酒未央宫5。 尘虑萦心,懒抚七弦绿绮;霜华满鬓,羞看百炼青铜6 ————————注释———————— 1沿:沿袭、遵照原样去做。革:变化、变革。 2黄童:黄口之童,即儿童。黄,黄口,雏鸟的喙边有一圈黄色的边,长大就消失,故以黄口喻指年龄幼小的。 3这是两个典故。上联出自《论语·雍也》,颜指颜回(字子渊),孔子的学生。孔子称赞他说:“一箪食、一瓢饮、在陋巷,人不堪其忧,回也不改其乐。贤哉,回也!”(吃一竹筐饭食,喝一瓢凉水,住在偏僻的巷子里,别人忍受不了这种贫穷,颜回不改变他快乐的心情。颜回呀,真是个贤人!)下联出自《晋书·阮籍传》。阮指阮籍(字嗣宗),魏晋时代人,博览群书,好老庄之学,为竹林七贤之一。《晋书》记载,阮籍经常驾车信马由缰地乱走,走到无路可走的时候便大哭而返。穷,到……的尽头,此处指无路可走之处。 4濯(音zhu?)足水:屈原《渔父》中有“沧浪之水清兮,可以濯我缨;沧浪之水浊兮,可以濯我足”的句子,故濯足水指污水。打头风:行船时所遇到的逆风。 5梁帝:南朝的梁武帝萧衍。他笃信佛教,经常和高僧们在同泰寺研讨佛经。汉皇:汉朝的开国之君刘邦。他曾宴请群臣于长安的未央宫,接受群臣的朝贺。 6尘虑:对尘世间琐碎小事的忧虑。萦:缠绕。绿绮:琴名,据说汉代的司马相如曾弹琴向卓文君求爱,卓文君就用绿绮琴应和他。霜华:即霜花(“华”为“花”的古字),借指白发。百炼青铜:借指镜子,古人用青铜镜照面。 贫对富,塞对通。野叟对溪童。鬓皤对眉绿,齿皓对唇红1。 天浩浩,日融融2。佩剑对弯弓3。半溪流水绿,千树落花红。 野渡燕穿杨柳雨,芳池鱼戏芰荷风4。 女子眉纤,额下现一弯新月;男儿气壮,胸中吐万丈长虹。 ————————注释———————— 1皤(音p?):白色。绿:这里指青色、黑色。皓:白色。 2浩浩:广阔无边的样子。融融:暖气上腾的样子。 3佩剑、弯弓:这两个词组既可看成动宾词组,即佩上剑、拉弯弓;也可看成偏正词组,即佩带的剑、被拉弯的弓。无论是哪种情况,都对仗。 4芰(音jì):菱角的一种。两角为菱,四角为芰。 二冬1

全国计算机四级 操作系统 第二章 操作系统运行机制

第二章 操作系统运行机制 操作系统的运行环境主要包括计算机系统的硬件环境和由其他的系统软件形成的软件环境。 本章讨论硬件环境。 CPU-存储体系-中断与异常机制-系统调用-IO 技术 中央处理器(CPU ) 一般的处理器构成与基本工作方式 运算器:实现任何指令中的算术和逻辑运算,是计算机计算的核心。 控制器:负责控制程序运行的流程 寄存器:存放相关数据的存储设备 高速缓存:出于CPU 与物理内存之间,有控制器的内存管理单元管理。 ====处理器中的寄存器 可见寄存器:数据、地址、条件码寄存器 控制和状态寄存器:用于控制处理器的操作,一般由具有特权的操作系统代码使用以控制其他程序的执行。 ====指令执行的基本过程:先从存储器中每次读取一条指令,然后执行这条指令。(指令周期) ====特权指令和非特权指令 如果某微型计算机是用于多用户或多任务的多道程序设计环境中,则他的指令系统中的指令必须分为:特权指令和非特权指令。 特权指令:指令系统的那些只能由操作系统使用的指令,而不允许一般用户使用的。 非特权指令:用户只能使用非特权指令,因为只有操作系统才能使用所有的指令。 处理器的状态 ====管态: 操作系统管理程序运行的状态,具有较高的特权级别,称为特权态和系统态。 目态: 用户程序运行的状态,具有较低的特权级别,称为普通态和用户态。 ====CPU 状态的转换:管态和目态是可以转变的 ==目态到管态:转换的唯一途径是通过中断或异常 ==管态到目态:通过设置PSW 指令,修改程序状态字。当计算机处于目态时,不允许执行特权指令。 ====限制用户程序执行特权指令:用户程序中不允许使用特权指令。当用户程序需要占用CPU 时,应该让CPU 处于目态。 程序状态字PSW (解决当前工作状态的问题) 用一个专门的寄存器来指示处理器状态,称为程序状态字(PSW )。用程序计数器(PC )这个专门地寄存器来指示下一条要执行的指令。 处理器的程序状态字通常包括以下状态代码: CPU 的工作状态代码:指明管态还是目态,用来说明当前在CPU 上执行的是操作系统还是一般用户,以 决定它是 否可以使用特权指令或拥有其他的特权。 条件码:反映指令执行后的结果特征 中断屏蔽码:指出是否允许中断 注意:不同机器的程序状态字的格式及其包含的信息都不同。 存储体系:(主存储系统以及与存储系统有关的机构是支持操作系统运行的硬件环境的一个重要方面) 存储器的层次结构 计算机存储系统的设计主要考虑:容量、速度、成本 存储保护:存储保护机构是操作系统运行环境中的一个重要的部分,常见的存储保护机构 界地址寄存器(界限寄存器):方法是在CPU 中设置一对界限寄存器来存放该用户作业在主存中的下限和上限地 址,分别称为下限寄存器和上限寄存器。 存储键(存储保护键):每一个存储块都有一个与其相关的由二进位组成的存储保护键。当操作系统挑选该作业 上CPU 运行时,操作系统同时将该作业的存储键号存放到程序状态字PSW 的存 储键域中。 中断与异常机制———(操作系统在管理输入输出设备时,在处理外部的各种事件时,都需要通过中断与异常机制进行处理)(中断的实现是硬件中断装置和相应的中断处理软件共同完成的) 中断与异常的概念 ====中断:指CPU 对系统中或系统外发生的异步事件的响应。异步事件是指无一定时序关系的随机发生的事件。专门设计了中断向量表:表中的每一项称为中断向量,主要由程序状态字PSW 和指令计数器PC 值组成。 ====异常:中断是由外部事件引发的,异常是由正在执行的指令引发的。 ====中断与异常的分类: 典型的中断 典型的异常 时钟中断、I\O 中断、控制台中断、硬件故障中断、 程序性中断、访管指令异常 中断系统:(由中断系统的硬件中断装置、软件中断处理程序) ====中断请求的接受:通过在计算机硬件的中断逻辑线路和中断寄存器实现的。 中断逻辑线路用于接受中断信号,并把该信号寄存在线路中的硬件触发器(中断位)中。在中断逻辑线路中有若干个专门接受中断信号的触发器,每个触发器称为触发位。1表示该触发器接收到中断信号,0表示无中断信号。这些中断触发器的全体称为中断寄存器。即中断寄存器是由若干个中断位组成的。 ====中断响应:处理器的控制部件中设有中断信号扫描结构,它在每条指令执行周期的最后时刻扫描中断寄存器。查看是否有中断信号到来,若无中断信号,处理器就继续执行下一条指令,若有中断到来,处理器接受由中断装置发来的中断向量代号。 ====中断处理 ====典型的中断处理 I\O 中断 时钟中断 系统服务中断 系统服务请求 程序性中断 硬件故障中断 中断优先级与中断屏蔽 多级中断与中断优先级 在多级中断系统中,硬件决定了各个中断系统的优先级别。 多级中断的作用:划分等级、做出选择 同级情况:固定优先数、轮转法 中断屏蔽:在整个系统中可以允许或禁止中断系统对某些类别中断的响应。(PSW 中有中断屏蔽位) 系统调用:为了从系统中获得服务 系统调用简介:就是用户在程序中调用操作系统所提供的一些子功能,这种特殊的过程调用,是通过特殊的机械指令实现的。除了实现调用,还将系统转入特权方式。 系统调用与一般过程调用的区别 系统调用的本质是应用程序请求操作系统核心完成一特定功能的一种过程调用,是一种特殊的过程调用。 系统调用 一般调用 运行在不同的系统状态 调用程序:用户态 被调用程序:系统态 核心态和或用户态 状态的装换 通过中断机制先有用户态转换为核心态,在操作系统分析之后,转向响应的系统调用处理子程序 不涉及,直接由调用过程装换为被调用过程 返回问题 优先级分析 回到调用过程继续执行 嵌套调用 允许 允许 系统调用的分类 过程控制类、文件操作类、进程通信类、设备管理类、信息维护类 系统调用 系统调用的处理过程 一般操作系统都不允许用户程序访问操作系统的系统程序和数据。因而,需要一个类似于硬件中断处理的中断处理结构。 I\O 技术:介绍计算机系统中的I\O 结构、通道、直接存储(DWA )技术、缓冲技术、 I\O 结构: 通道:独立于中央处理器,专门负责数据I/O 传输工作的处理单元。 直接存储器访问技术(DMA ):通过系统总线中的一个独立控制单元(DMA 控制器),自动控制成块的数据在内 存和I/O 单元之间进行传输。 缓冲技术:利用存储器件在外部设备中设置了数据的一个存储区域(缓冲区)。该技术一种用于外部设备与外部 设备之间的通信,一种用于外部设备与处理器之间的通信。 时钟 时钟一般分为硬件时钟和软件时钟。两者的同步工作通过操作系统维护。 时钟的用途分为绝对时钟和相对时钟(又称间隔时钟)。绝对时钟是系统中不受外界干扰的一种时钟。相对时钟是从某一时间初值开始的一段间隔时间。

《声律启蒙》注解与译文(整理打印版,适合孩子自己阅读理解记忆)讲解学习

《声律启蒙》注解与译文(整理打印版,适合孩子自己阅读理解 记忆)

上:一东 “东”指“东韵”,是宋金时期的“平水韵”(也叫“诗韵”)中的一个韵部。“东”叫韵目,即这个韵部的代表字。东韵中包含有许多字,它们的共同点便是韵母相同(当然是指隋唐五代两宋时期的读音),像下面的三段文字中,每个句号之前的那个字,即风、空、虫、弓、东、宫、红、翁、同、童、穷、铜、通、融、虹等 15字,尽管在现代汉语中的韵母并不完全相同,但都同属于东韵,如果是作格律诗,这些字就可以互相押韵。 “一”,是指东韵在平水韵中的次序。平水韵按照平、上、去、入四个声调分为 106个韵部,其中因为平声的字较多,故分为上下两个部分,东韵是上平声中的第一个韵部;“二冬”、“三江”等情况相同。 云对雨,雪对风。晚照对晴空。来鸿对去燕,宿鸟对鸣虫。 三尺剑,六钧弓①。岭北对江东。人间清暑殿,天上广寒宫②。 两岸晓烟杨柳绿,一园春雨杏花红。 两鬓风霜途次早行之客,一蓑烟雨溪边晚钓之翁③。 【注释】 这一联是两个典故。 ①上联出自《史记?高祖本纪》。汉朝的开国君主刘邦曾经说:我以普通百姓的身份提着三尺长的宝剑而夺取了天下。 下联出自《左传》,鲁国有个勇士叫颜高,他使用的弓为六钧(钧为古代重量单位,一钧30斤),要用180斤的力气才能拉开。 【原文】云对雨,雪对风。晚照对晴空。来鸿对去燕,宿鸟对鸣虫。三尺剑,六钧弓。岭北对江东。 【译文】云和雨相对,雪和风相对,晚上的夕阳和晴朗的天空相对。飞来的大雁和离去的燕子相对,回巢的鸟儿和低鸣的虫子相对。三尺长的剑,六钩重的弓,岭北和江东相对。 ②清暑殿:洛阳的一座宫殿。广寒宫:《明皇杂录》说,唐明皇于中秋之夜游月宫,看见大门上悬挂着“广寒清虚之府”的匾额,后代便以广寒宫代指月宫。

相关主题