有关操作系统

简介: 内存管理 对进程按固定大小进行划分,单位为页;对主存按同样大小进行划分,叫页框。一个页刚好对应一个页框。 那么进程内的指令或数据的地址表示为:页号,页内偏移量。 操作系统为每个进程分配一张页表,内容为:页号,该页内存地址。用于实现逻辑地址到物理地址的映射。   页面置换算法:LRU。 LRU是Least Recently Used 近期最少使用算法。即把最久未访问的页框置换出去

内存管理

对进程按固定大小进行划分,单位为页;对主存按同样大小进行划分,叫页框。一个页刚好对应一个页框。

那么进程内的指令或数据的地址表示为:页号,页内偏移量。

操作系统为每个进程分配一张页表,内容为:页号,该页内存地址。用于实现逻辑地址到物理地址的映射。

 

页面置换算法:LRU。

LRU是Least Recently Used 近期最少使用算法。即把最久未访问的页框置换出去。

微笑问:【2010研招真题】某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为2^10(2的十次方,下同)B,页表项大小为2B,逻辑地址结构为:一级页号,页号,页内偏移量。逻辑地址空间大小为2^16页,则表示整个逻辑地址空间的一级页表中,包含的页表项项数最少为(128)

答:一页最多能存放2^9个页表项,也就是说一个页表中可以实现2^9个页面的映射。那么映射2^16个页面需要2^7=128个页表,那么一级页表中就需要有128个表项,每项的内容是:页表编号,页表地址。

微笑问:【2009研招真题】一个分段存储管理系统中,地址长度为32位,其中段号占8位,则最大段长是(2^24(2的24次方)B)

 微笑所谓Belady anomaly 现象是指什么?

答:采用FIFO算法时,如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。

 进程通信

线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件和进程用户ID与进程组ID等。

进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括:

1.线程ID

每个线程都有自己的线程ID。

2.寄存器组的值

由于线程间是并发运行的,每个线程有自己不同的运行线索,当从一个线程切换到另一个线程上时,必须将原有的线程的寄存器集合的状态保存,以便将来该线程在被重新切换到时能得以恢复。

3.线程的堆栈

堆栈是保证线程独立运行所必须的。线程函数可以调用函数,而被调用函数中又是可以层层嵌套的,所以线程必须拥有自己的函数堆栈,使得函数调用可以正常执行,不受其他线程的影响。

4.错误返回码

由于同一个进程中有很多个线程在同时运行,可能某个线程进行系统调用后设置了errno值,而在该线程还没有处理这个错误,另外一个线程就在此时被调度器投入运行,这样错误值就有可能被修改。所以,不同的线程应该拥有自己的错误返回码变量。

5.线程的信号屏蔽码

由于每个线程所感兴趣的信号不同,所以线程的信号屏蔽码应该由线程自己管理。但所有的线程都共享同样的信号处理器。

6.线程的优先级

由于线程需要像进程那样能够被调度,那么就必须要有可供调度使用的参数,这个参数就是线程的优先级。

微笑在unix系统中,哪些可以用于进程间的通信?(BCD)

A Socket B.共享内存C 消息队列 D信号量

 

进程调度

微笑在非抢占式调度算法中,最短作业优先算法具有最小的平均等待时间。

 

 

 

目录
相关文章
|
数据安全/隐私保护
BUUCTF 隐藏的钥匙 1
BUUCTF 隐藏的钥匙 1
265 0
|
SQL 分布式计算 运维
DataWorks产品使用合集之如何恢复odps误删的分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
前端开发
HTML与CSS实现网页的超链接及美化
HTML与CSS实现网页的超链接及美化
355 0
HTML与CSS实现网页的超链接及美化
|
数据采集 前端开发 算法
技术与业务同行:做业务的技术人
本文结合了作者的工作经验提出了一些建议,希望每一位技术同学都可以找到适合自己的成长方向和路径。
|
关系型数据库 MySQL Linux
MySQL【部署 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)
MySQL【部署 02】Linux 非 root 用户部署 mysql-5.7.28 设置开机启动及问题汇总(含云盘资源)
572 0
|
XML Java 编译器
JDK1.5,1.6,1.7,1.8,1.9,1.10,1.11的新特性整理
JDK1.5,1.6,1.7,1.8,1.9,1.10,1.11的新特性整理
1475 0
|
决策智能
运筹优化学习01:Lingo入门与错误列表分析(一)
运筹优化学习01:Lingo入门与错误列表分析
运筹优化学习01:Lingo入门与错误列表分析(一)
|
XML 数据格式
XML问题: The processing instruction target matching "[xX][mM][lL]" is not allowed
XML问题: The processing instruction target matching "[xX][mM][lL]" is not allowed
375 0
|
机器学习/深度学习 人工智能 文字识别
使用LabVIEW 实现物体识别、图像分割、文字识别、人脸识别等深度视觉
使用LabVIEW 实现物体识别、图像分割、文字识别、人脸识别等深度视觉
611 0
|
自然语言处理 IDE 前端开发
Web IDE Landscape
前言:一些运行在 Kubernetes 中的复杂微服务架构是 CPU 和内存密集型的(AI 场景下的算法调优过程是 GPU 密集型),在某些情况下编译或测试可能非常耗时且占用大量资源。然而大多数工程师的标准设备是笔记本,有 CPU 和内存的限制。云端开发环境具有动态分配计算资源的特性,能够很好的解决上述需求场景。近些年也出现了一些令人兴奋的云端开发解决方案,比如:GitHub Codespaces
765 0

热门文章

最新文章