Friday for Oldboy

计算机的硬件介绍

1.  CPU的工作流程:取指令->解码->执行

2.  程序状态字寄存器(Program Status Word,PSW)中有一个二进制位控制这两种模式。

内核态:当cpu在内核态运行时,cpu可以执行指令集中所有的指令,很明显,所有的指令中包含了使用硬件的所有功能,(操作系统在内核态下运行,从而可以访问整个硬件)

用户态:用户程序在用户态下运行,仅仅只能执行cpu整个指令集的一个子集,该子集中不包含操作硬件功能的部分,因此,一般情况下,在用户态中有关I/O和内存保护(操作系统占用的内存是受保护的,不能被别的程序占用),当然,在用户态下,将PSW中的模式设置成内核态也是禁止的。

  内核态与用户态切换
用户态下工作的软件不能操作硬件,但是我们的软件比如暴风影音,一定会有操作硬件的需求,比如从磁盘上读一个电影文件,那就必须经历从用户态切换到内核态的过程,为此,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统,TRAP指令把用户态切换成内核态,并启用操作系统从而获得服务。

3.存储器

存储器系统采用如上图的分层结构,顶层的存储器速度较高,容量较小,与底层的存储器相比每位的成本较高,其差别往往是十亿数量级的

寄存器即L1缓存:用与cpu相同材质制造,与cpu一样快;容量<1KB。

高速缓存即L2缓存:典型访问时间为2ns,容量为4mb左右。

内存:内存通常称为随机访问存储RAM,内存是易失性存储,断电后数据全部消失。

EEPROM(Electrically Erasable PROM,电可擦除可编程ROM)和闪存(flash memory)也是非易失性的,但是与ROM相反,他们可以擦除和重写。

有一类存储器就是CMOS,它是易失性的,许多计算机利用CMOS存储器来保持当前时间和日期。CMOS存储器和递增时间的电路由一小块电池驱动,所以,即使计算机没有加电,时间也仍然可以正确地更新,除此之外CMOS还可以保存配置的参数,比如,哪一个是启动磁盘等,之所以采用CMOS是因为它耗电非常少,一块工厂原装电池往往能使用若干年,但是当电池失效时,相关的配置和时间等都将丢失。

4.磁盘

每个磁头可以读取一段换新区域,称为磁道

把一个戈丁手臂位置上所以的磁道合起来,组成一个柱面

每个磁道划成若干扇区,扇区典型的值是512字节

  数据都存放于一段一段的扇区,即磁道这个圆圈的一小段圆圈,从磁盘读取一段数据需要经历寻道时间和延迟时间

平均寻道时间

机械手臂从一个柱面随机移动到相邻的柱面的时间成为寻到时间,找到了磁道就以为着招到了数据所在的那个圈圈,但是还不知道数据具体这个圆圈的具体位置

平均延迟时间

机械臂到达正确的磁道之后还必须等待旋转到数据所在的扇区下,这段时间成为延迟时间

虚拟内存:许多计算机支持虚拟内存机制,该机制使计算机可以运行大于物理内存的程序。

5.磁带

在价钱相同的情况下比硬盘拥有更高的存储容量,虽然速度低于磁盘,但是因其大容量,在地震水灾火灾时可移动性强等特性,常被用来做备份。(常见于大型数据库系统中)

6.总线

其中北桥即PCI桥:连接高速设备

南桥即ISA桥:连接慢速设备

7.应用程序的启动流程

BIOS就相当于一个小的操作系统,它有底层的I/O软件,包括读键盘,写屏幕,进行磁盘I/O,该程序存放于一非易失性闪存RAM中。

 bloss----MBR---GRUB-----kemal

a.计算机加电。

b.BIOS开始运行,检测硬件:cpu、内存、硬盘等。

c.BIOS读取CMOS存储器中的参数,选择启动设备。

d.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)。

e.根据分区信息读入bootloader启动装载模块,启动操作系统。(Grub)

f.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI。

时间: 2024-09-20 18:43:20

Friday for Oldboy的相关文章

学习决心书-linux oldboy &nbsp;

我叫任代桥,参加老男孩教育linux运维网络班,目标5个月完成linux运维学业,目标薪水是14K,为了达到此目标我将努力做到一下几点,请大家监督: 1.期间不再碰LOL.dota2等任何游戏,不看电影,不看连续剧,戒掉网综 2.每天认真听讲,做好笔记,记好重点,专心跟着老师走. 3.课下积极总结,当日知识点,当日总结收获,做好小结并复习以前学的知识. 4.争取每天进行10小时及以上的学习时间,坚决不低于每天8个小时的学习时间. 5.遇到难题的时候自己先研究解决,再向导师请教. 6.多练习,多操

老男孩教育每日一题-2017年5月4日-有一个oldboy.txt文件,把里面所有字母都转换成大写

老男孩教育每日一题-2017年5月4日-有一个oldboy.txt文件,把里面所有字母都转换成大写 文件内容如下: [[email protected] oldboy]# cat oldboy.txt  oldboy.blog.51cto.com www.oldboyedu.com 方法一:sed [[email protected] oldboy]# sed 's#[a-z]#\u&#g' oldboy.txt OLDBOY.BLOG.51CTO.COM WWW.OLDBOYEDU.COM 方

把/oldboy目录及子目录下所有以扩展名.sh结尾的文件中包含oldboy的字符串全部替换成oldgirltou

方法1  find  /oldboy -type f -name '*.sh'|xargs sed -i 's#oldboy#oldgirl#g' find /oldboy -type f -name '*.sh'|xargs  cat 方法2  sed  -i  's#oldgirl#oldboy#g'   `find  /oldboy  -type f -name "*.sh"`    `时tab上面的键盘  表示先执行那一部分

shell脚本,在指定目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件。

[[email protected] wyb]# cat test10.sh #!/bin/bash #使用for循环在/test10目录下通过随机小写10个字母加固定字符串oldboy批量创建10个html文件 dir=/root/wyb/test10/ [ ! -d $dir ] && mkdir -p $dir for i in `seq 10` do touch $dir`echo $RANDOM|md5sum|cut -c 1-10`_oldboy.html done [[ema

oldboy自我介绍以及决心书

自我介绍 大家好,我是来自云南滇中小城玉溪的李洋,很高兴认识各位老师以及各位同学. 大学我学习的专业是网络工程,学校中学习的知识,很大一部分都是从计算机的基本原理,到操作系统,再到网络,再到各个方面,都有涉及. 目前毕业两年的我,在一家系统集成公司工作.在毕业的这两年中,我深切体会到了,作为计算机体系中重要的一环,操作系统层面的工作已经在实际工作中越来越多.不了解其原理,不会操作,以及和其有关的新技术,都会成为我今后工作中的瓶颈.经常上51cto的我,希望能够找到一个可以系统的学习目前操作系统最

&#8203;老男孩教育每日一题-第125天-显示文件oldboy.txt的第20行到30行请问如何做?

显示文件oldboy.txt的第20行到30行请问如何做? echo stu{00..40}|xargs -n1 >oldboy.txt 1.    head -30 oldboy.txt|tail -11 2.    sed -n '20,30p' oldboy.txt 3.    sed -n '20,30!d' oldboy.txt 4.    awk 'NR==20,NR==30' oldboy.txt 5.    awk 'NR>=20 && NR<=30' o

将以上文件名中的oldboy全部改成oldgirl(用for循环实现),并且html改成大写。

第一种方法: #!/bin/bash cd /oldboy for i in `ls` do    rename 'oldboy' 'oldgirl' $i |rename 'html' 'HTML' $i done 第二种方法: #!/bin/bash cd /oldboy for i in `ls` do mv $i `echo $i|sed -e 's#oldboy#oldgirl#g;s#html#HTML#g'` done

老男孩教育每日一题-第92天-显示出打印第二列为oldboy行的第一列内内容

题目 [[email protected] oldboy# cat ip.log  10.0.0.1 oldboy 10.0.0.2 oldgirl 10.0.0.3 bingbing 10.0.0.4 tingting 10.0.0.4 oldboy 打印第二列为oldboy行的第一列内容 参考答案 方法一:while循环 cat match.shwhile read line do     name=`echo $line|awk '{print $2}'`         if [ "$n

把 oldboy 目录及其子目录的属主改为 oldboy, 组改为 root, 请给出命令

chown -R tom.root oldboy 更改当前目录的chown(就是所有者)为root,-R意思是循环遍历,如果当前目录下有子目录,同时更改那些子目录 [[email protected] ~]# chown -R oldboy.root /oldboy/# -R参数:递归 [[email protected] ~]# chown -R oldboy:root /oldboy/# 格式[属主:属组 == 属主.属组] [[email protected] ~]# ls -ld /ol

oldboy测试题1

1.1 我想在/data/oldboyedu目录下面创建一个oldboy.txt文件 [[email protected]~]# cd /data/oldboyedu-bash: cd:/data/oldboyedu: No such file or directory 1.为何出现这样的错误答:没有这个/data这个目录或者没有/data/oldboyedu/目录 2.如何解决? [[email protected]~]# mkdir -p /data/oldboyedu[[email pro