
操作系统
蓝鲸123
做更好的自己
展开
-
系统启动
启动时计算机内存和磁盘布局: 0x0- 640k 空闲空间 -1MB BIOS 启动固件: 20位地址空间 CS:IP=0xf000:fff0 系统处于实模式,PC=16*CS+IP; 4GB 空闲空间 BIOS系统调用: BIOS以中断调用的方式 提供了基本的I/O功能, INT 10h: 字符显示 INT 13h: 磁盘扇区读写 INT 15h: 检测内存大小 INT 16h: 键原创 2016-05-24 16:56:09 · 532 阅读 · 0 评论 -
逻辑地址,线性地址,物理地址
逻辑地址,线性地址,物理地址 1. 分段,即逻辑地址转换为线性地址,段基址+段偏移=线程地址。通过LDT中的段选择符找到段描述符(GDT)然后找到段基址。CPU为了方便找到LDT与GDT又在CPU中做了两个寄存器GDTR与LDTR。GDT中有limit字段,相当于段尾址,从硬件上可以确保段不会越界。一个程序是分段的,如代码放在代码段(CS),局部变量与函数指针放在栈段(SS),数据放在堆段等(D原创 2016-05-24 16:56:58 · 819 阅读 · 0 评论 -
虚拟存储
虚拟存储需求背景:虚拟存储是在这个非连续存储内存分配的基础上,可以把一部分内容放在外村里的做法 理想的存储器: 容量更大,速度更快,价格更便宜的非易失性存储器交换技术:增加正在运行或者需要运行的程序的内存 实现方法:可将暂时不能运行的程序放到外存 换入换出的基本单位:整个进程的地址空间 换出:把一个进程的整个地址空间保存到外存 换入:将外存中某进程的地址空间读入到内存 交换的时机:只原创 2016-05-24 17:00:57 · 1251 阅读 · 0 评论 -
进程切换
一个进程的上下文 可以分为三个部分:用户级上下文、寄存器上下文以及系统级上下文。 用户级上下文: 正文、数据、用户堆栈以及共享存储区; 寄存器上下文: 通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP,SS); 系统级上下文: 进程控制块task_struct、内存管理信息(mm_struct、vm_area_struct、pgd、pte)、内核栈发生进程调度原创 2016-05-24 19:45:31 · 2187 阅读 · 0 评论 -
操作系统的调度策略
调度程序:挑选就绪进程的内核函数: 调度策略(依据什么原则挑选进程/线程? ) 调度时机(什么时候进行调度?)调度时机 在进程/线程的生命周期中的什么时候进行调度? (1)进程从运行状态切换到等待状态 (2) 进程被终结了非抢占系统: 当前进程主动放弃CPU时可抢占系统:(1)中断请求被服务例程响应完成时(2)当前进程被抢占a. 进程时间片用完b. 进程从等待切换到就绪调度策略: 确原创 2016-05-18 12:05:31 · 3357 阅读 · 0 评论 -
操作系统的信号量和管程
信号量 semaphore 信号量是操作系统提供的一种协调共享资源访问的方法 软件同步是平等线程间的一种同步协商机制 OS是管理者,地位高于进程 用信号量表示系统资源的数量由一个整形 (sem)变量和两个原子操作组成 P()(Prolaag (荷兰语尝试减少)) sem减1 如sem<0, 进入等待, 否则继续 V()(Verhoog (荷兰语增加)) sem加1原创 2016-05-20 19:06:21 · 4274 阅读 · 0 评论