南京大学操作系统期末考试:概念、策略与计算

需积分: 13 3 下载量 69 浏览量 更新于2024-09-02 1 收藏 83KB PDF 举报
"这是一份2008年南京大学操作系统原理与实践I课程的期末试卷,涵盖了操作系统的基础概念、核心机制以及相关的计算问题。试卷包括解释题、简答题和计算题,旨在测试学生对操作系统的理解,如线程、内存管理、文件系统和磁盘调度等知识点。" 这份试卷涉及的知识点丰富多样,以下是详细解析: 1. **解释题**: - **分时操作系统**:一种操作系统,将CPU时间分割成多个时间片,轮流为多个用户或进程服务,使用户感觉好像拥有独占系统一样。 - **模式切换**:在计算机系统中,指从用户模式到内核模式或反之的转换,以执行特权操作或处理硬件中断。 - **快表**:一种高速缓存,用于存储最近使用过的内存地址映射,以加速虚拟地址到物理地址的转换。 - **中级调度**:也称作交换调度,负责将内存中的非活动进程调出到外存,以便腾出空间给新的或已就绪的进程。 - **临界区**:进程中访问共享资源的那段代码,必须互斥执行以防止数据竞争。 - **管道**:一种用于进程间通信的机制,允许数据流从一个进程流向另一个进程。 - **设备独立性**:用户程序可以独立于具体设备进行操作,操作系统提供统一的接口,隐藏设备的具体实现。 - **文件**:在操作系统中,是数据的持久化存储单元,具有名字、类型、权限等属性。 2. **简答题**: - **线程引入的原因和作用**:线程是轻量级的进程,能提高系统并发性和资源利用率,降低进程间的通信成本,提高系统效率。 - **虚存管理中的页面分配和替换策略**:涉及如何分配内存给进程,以及当内存不足时如何选择页面进行淘汰,例如最佳(OPT)、先进先出(FIFO)、最近最少使用(LRU)等策略。 - **PSW的作用和内容**:程序状态字,记录当前进程的状态信息,如条件码、特权级别、中断屏蔽位等。 - **分页机制与分段机制的比较**:分页是按固定大小划分内存,便于硬件实现;分段按逻辑单元划分,利于模块化编程,但可能导致内部碎片。 - **死锁的必要条件及破坏方法**:死锁的四个必要条件是互斥、占有并等待、无剥夺和循环等待。破坏这些条件可以通过资源预分配、避免环路等待等方式。 3. **计算题**: - **内存管理**:涉及作业调度(FCFS策略)、内存分配以及计算作业周转时间。 - **文件系统**:考察了成组链接法,包括直接索引和多级间接索引,计算访问特定位置数据所需的间接层次。 - **请求分页式虚拟存储管理**:讨论了LRU和第二次机会算法,需要分析页面访问序列,计算物理地址访问序列和缺页率。 - **磁盘调度**:包括电梯调度(最短寻道时间优先SSTF)、扫描算法和最短寻找时间优先算法,需要根据请求序列优化磁盘臂的移动顺序。 通过这份试卷,学生需要对操作系统的基本原理和机制有深入理解,包括并发控制、内存管理、文件系统、I/O管理等方面,同时也需要具备一定的计算能力来解决实际问题。

以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op

2023-05-26 上传