OperatingSystemNote

preparing Learn --> pyautoit

操作系统提供的服务
{
用户接口

程序执行

I/O操作

文件管理

错误处理

}

操作系统特征
{
并发性

共享性

随机性

}

微内核
{
线程调度

虚拟存储

消息传递

设备驱动

中断处理

}

POSIX: 最小系统调用接口 --Linux,Windows等都支持。

硬件)Unix内核)系统调用接口)UNIX命令和库

Linux
{
硬件)内核)系统调用)外壳(shell,X-Windows)
}

第二章 进程和线程
{
进程
{
特点
{
动态性

		并发性
		
		非对应性
		
		异步性
	}
	
	
	进程状态
	{
		运行状态
		
		就绪状态
		
		阻塞状态
		
		(新建状态、终止状态)
	}
	
	进程映像
	{
		进程控制块(PCB)Process Control Block
			一般包含内容{
			
			1.进程标识  name
			2.进程当前状态 status
			3.当前队列指针 next
			4.执行程序开始地址 start_addr
			5.进程优先级 priority
			6.CPU现场保护区
			7.通信信息
			8.家族联系 process family
			9.占用资源清单 own-resource
			
			
			
			
			
			
			
			}
			
			进程组成
			{
				进程控制块PCB
				程序段
				数据段
			}
			
		PCB链接方式:  队列
		
		运行指针,就绪指针,阻塞指针,空白指针
		
		进程通信
		{
			1.共享存储器系统
			
			2.消息传递系统
			{
				a. 直接通信方式
					Send(receiver,message)
					
					Receive(sender,message)
				
				b. 间接通信方式
					信箱方式
					
			
			}
			
			3.管道通信
			{
				利用共享文件连接相互通信的进程
				互斥
				同步
				判读是否存在
			}
			
			
		}
		
		!线程  thread
		{
			TCB 线程控制块 thread control block
			{
				状态
				调度信息
				
				线程标识
				现场信息
				线程私有存储区
				指针(指向PCB)
			}
			
			状态
			{
				运行、就绪、阻塞
				线程不是资源的拥有单位
				
			}
			
			线程分类:
			{
				核心级线程
				
				用户级线程
				
				
			}
		}
					
		Linux进程
		{
		
		
		进程通信:
			{
			消息队列
			
			消息管道
				{
				有名管道--> 长期存在
				
				无名管道--> 调用pipe()建立的临时文件。
				
				
				进程互斥
				进程同步
				确定对方进程存在
				}
				
				
			}
		
		
		
		
		
		
		
		}
		
		栈
		程序执行
		数据集合
	}
}

}

第三章 处理机调度
{
完成进程选择工作的部分–> 调度程序

作业调度、交换调度、进程调度

进程调度
	{

		1.保存现场
		2.挑选进程
		3.恢复现场
		
		调度方式
		{
			1.非抢占调度方式
			
			2.抢占调度方式
			{
				优先权原则
				短进程优先原则
				时间片原则
			}
			
		}
		
		调度算法:
		{
			1.先来先服务  
			First Come First-Served-->FCFS
			
			2.短作业优先法
			Shortest-Job-First   -->SJF
			
			3.最短剩余时间优先法
			Shortest Remaining Time First -->SRTF  
			抢占式算法
			
			4.高响应比优先
			Highest Respoonse Ratio First --> HRRF
			
			响应比 =  1 + 已等待时间/估计运行时间
			
			5.优先级调度
			Priority Scheduling,  -->PS
			
			6.时间片轮转发
			Round Robin   --> RR
			
			7.多级队列法
			Multilevel Queue  --> MQ
			
			8.多级反馈队列  ->最通用的CPU调度算法
			Multilevel Feedback Queue -->MFQ

		}
		
		
		用户级线程调度  : 
		{	
			可能: A1,A2,A3,B1,B2,B3
			不可能:A1,B1,A2,B2,A3,B3				
		
		核心级线程调度
			可能: A1,A2,A3,B1,B2,B3
			也可能: A1,B1,A2,B2,A3,B3	
		}
		
		
		多处理器调度
		{
			1.松散耦合多处理器系统 : 每台处理器有自己的内存,IO,OS
			
			2.主从多处理器系统 : 所有系统调度由主控机完成
			
			3.紧密耦合多处理器系统 : 一组处理器共享内存,同一OS下工作
		}
	
	}

}

第四章 进程同步与死锁
{
与时间有关的错误

进程的同步和互斥
{
	同步:  进程运行到某一时间点时,需等到其它进程完成某一步操作
			从而才能继续运行。
			
	互斥:  	共享资源-> 互斥共享资源,不可同时访问资源
}

临界资源: 只允许一个进程访问的共享资源。许多硬件设备都为临界资源。

临界区  P94
{
	1.入口区: 对能否被访问进行判断
	
	2.临界区: 访问临界资源的代码
	
	3.退出区: 清除临界资源占用标志
	
	4.其余代码区: 其余代码
}
临界区访问准则
{
	1.空闲让进
	2.忙则等待
	3.有限等待: 访问限时
	4.让权等待: 若进程不能进入自己的临界区,则应该停止运行,让出处理器
}


互斥实现方法
{
	硬件方法
	{
		1.禁止中断
		
		2.机器指令
			TS指令 (通过Test标志位实现)
			Swap指令??   不断互换key,x值,直到x = 0 表示可进入
			{
				x = 1
				while(x!= 0) swap(&x,&key);
				临界区;
				key = 0;
			}
	}
	软件方法  内存级别的访问互斥
	{
		P98.
	}
	
	信号量
	{
		P(mutex);    阻塞操作
		临界区;
		V(mutex);    释放临界资源
		
		AND信号机制: 
			
		
		
		
			
		
		
		
	}

		
	
	
	
}

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值