2015暑假复习——操作系统

1、操作系统对内存的管理

操作系统为每个进程都提供了一个虚拟内存,相当于在进程和物理地址之间加上了一层,这一层可以保证不同进程之间不能直接访问对方的数据。但也由此派生出逻辑地址,线性地址,分段,分页等概念。

早期的Intel芯片cpu是16位的,而地址总线是20位的,这就意味着CPU只能访问64KB存储空间,而地址总线能访问1MB存储空间,为了解决这个问题,Intel的工程师采用了分段的策略,一个逻辑地址表示成   段地址:段偏移量   的形式,段地址由16位CPU段寄存器左移4位构成,二维逻辑地址拼接起来就构成了一个线性地址。

进程直接访问物理地址的方式称为实模式,现在操作系统开机时也是先进入实模式。实模式的问题就在于不安全,不同进程的内容都暴露给其他进程了,cpu给每个进程分配相应的段区域可以解决这个问题。

现代操作系统为了提高每个进程可用的存储空间,采用了虚拟地址的概念,每个进程都有一段可用的虚拟内存,每个进程自己管理一个LDT,即局部描述符表,指定当前进程每一页对应到物理地址中的哪一个页目录中的哪一页。对应了也不一定被加载,即使是该进程的运行阶段也不一定被加载,只有发生缺页的时候才会加载。这样可以保证有限的物理地址空间尽可能多的运行进程数量。

逻辑地址对应到线性地址的时候,也不再使用直接拼接,而是用逻辑地址指向GDT,即全局描述符表,里面记载了需要查询的线性地址的段起始位置。

2、进程间通信的几种方式

1)信号

比较古老的通信方式,主要用于系统调用,用一些数字实现,数量有限,从用户态到内核态。

2)管道

包括匿名管道和命名管道两种,匿名管道用于关联进程之间的通信,是系统自动创建的;命名管道用于不关联进程之间的通信,需要用户手动创建。(面试问题:如何在linux下创建一个管道?

3)信号量

一般用于进程同步

4)消息队列

5)共享内存

最快的进程间通信方式

6)socket

可以用于网络主机之间的进程通信,不限于单机。

3、进程调度

调度的几种策略:短进程优先,FIFO,优先级,时间片轮转,以及这几种策略的结合。

进程调度发生在以下几种情况:1)中断;2)时间片结束。进程调度时,操作系统维护三个队列,第一个是就绪队列,第二个是运行队列,第三个是阻塞队列。

4、系统调用

系统调用是指程序调用操作系统的api,调用方法是中断,调用相应的中断号进入操作系统的中断响应程序,然后操作系统去查找中断向量表,调用相应的程序。系统调用需要从用户态进入内核态,所以比较耗时。

5、进程和线程的区别

线程共享进程的资源,如I/O,文件,所以线程间通信简便;创建线程耗时少;线程间切换开销小;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值