现在的位置: 首页 > 综合 > 正文

OS1 绪论

2013年07月26日 ⁄ 综合 ⁄ 共 1284字 ⁄ 字号 评论关闭

basics

OS基本定义: 管理软件与硬件资源,并提供一些软件接口,软件接口指的就是系统调用,当然不会直接利用,一般通过系统调用库过程实现,在Windows中通过win32 api实现,当然win32的api挺难区分到底是系统调用库过程还是系统调用。

系统调用的过程:存储原始context---->存储系统调用所要的信息(比如id)------->切换成内核态------->检查合法性-------->系统调用------->返回结果继续执行

系统在运行时有两种模式:内核态和用户态;用户态执行的指令只是所有指令的一个子集,防止其他进程损坏系统。至于内核态中包含什么,越来越模糊,有些系统会将文件系统也会塞入用户态中。

系统结构:

  1. 对于普通用户来说,分为shell/GUI
  2. 对于programmer来说,提供了win32 api/posix/java等系统调用
  3. 微内核、聚内核、MacOS(混合型)、VMware

posix的来源是unix按照各自独立的方向发展,因此IEEE规定了一个统一的POSIX接口。

进程or线程

进程的定义:a program in execution

进程是资源独立分配的单位,它包含program counter、stack、heap、register、data section、text section等等,注意它分配得到的物理空间是逻辑地址空间,都从0开始。

进程树、进程通信

存储器

存储器分为:

  1. register
  2. cache
  3. memory
  4. disk等

cache的原理是:当一个大资源可以分割成相对独立的更小部分,那么某些部分必然比其他部分更容易被访问到。注意这里由于访问介质不一样,普通的DS中关于时间复杂度和数量成正比并不成立,先在cache中查找没有再去memory中去查这些多余的查找并不多耗很多时间,而且平均下来必然更少的时间。

外存每bit价格差2个数量级,但速度可能差3个数量级

储存管理

OS创建一个地址的抽象来与实际的物理地址解耦,包括virtual memory的实现都是来自于这个实现。

文件系统

文件系统抽象用于隐藏I/O细节,实际上硬件设备是极其复杂的,统一的文件接口为programming提供了便利。

文件系统一般也组织成树形结构,与进程树区别的地方是他一般层数较大。

文件保护在unix系统中一般有9位,三位一组分别为自己、所在组用户、其他人,分别为RWE。

每个文件都有一个独立的i-编号,link命令实际上在调用这个编号复制一下,对应同一个物理文件

杂七杂八

trap指令切换当前状态

所有过程调用都是从右开始往左将参数塞入堆栈典型的比如printf()

常用的unix命令

link 用于在不同文件下创建对应同一个物理文件的逻辑映射

mkdir rmdir 创建删除文件夹

cp 拷贝

mount、unmount 分别为装载、解装载文件系统

fork unix中唯一创建新进程的方式,可以配合execve使用,执行新的子进程

系统启动方式

读入rom加载主引导程序(512字节)(能找到主引导程序的原因是主引导程序在固定的地方),然后主引导程序加载(Ox7C00处)菜单,菜单选择加载内核。

抱歉!评论已关闭.