主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三421) Autumn 2007

Slides:



Advertisements
Similar presentations
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
Advertisements

第1单元 操作系统概论 第一节 绪论 操作系统定义.
四資二甲 第三週作業 物件導向程式設計.
香港普通話研習社科技創意小學 周順強老師.
操作系统原理 Principles of Operating System
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
基于操作系统的编程复习 张玉宏
Oracle数据库 Oracle 子程序.
远程教育站点管理 及齐鲁先锋平台的使用 平阴县党员干部现代远程教育中心.
在PHP和MYSQL中实现完美的中文显示
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
南京天石软件技术有限公司 陈锺 (QQ: Solaris 10 C编程 南京天石软件技术有限公司 陈锺 (QQ:
中国科学技术大学计算机系 陈香兰(0512- ) Spring 2011
第七章. 文件系统 (lab5).
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2010
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
嵌入式操作系统 陈香兰 Spring 2006 中国科学技术大学计算机系.
实践演练 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
辅导课程六.
1-1-1作業系統的功能 提供使用者操作介面 提供程式執行環境 控制輸入\輸出程序 分配系統資源 管理與維護磁碟中的檔案
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
Process management(程序管理)
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2010
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第四章 附件 (应用程序软件包).
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
中国科学技术大学计算机系 陈香兰(0512- ) Spring 2011
第 23 讲 操作系统接口与UNIX系统内核结构 李元金 计算机与信息工程学院 1.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Gzip编译及调试 曹益华
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
作業系統 第三章 作業系統結構.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Visual Basic程序设计 第13章 访问数据库
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
挑戰C++程式語言 ──第9章 函數.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第9章 多媒体技术 掌握 Windows 画图工具的基本操作; 掌握 Windows 音频工具进行音频播放;
Python 环境搭建 基于Anaconda和VSCode.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
架构师成长感悟 吴隆烽
实验二:添加Linux系统调用及熟悉常见系统调用
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab4.
主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三421) Autumn 2007
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
第6章 嵌入式软件开发基础.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
PROGRAM 1 Simple E. Angel, Interactive Computer Graphics A Top-Down Approach with OpenGL, Third Edition Addison-Wesley Longman, 2003.
《操作系统设计与实现》 Linux系统编程.
Presentation transcript:

主讲:陈香兰 助教:贾永泉、毛熠璐 xlanchen@ustc.edu.cn 3606864-83(西区电三421) Autumn 2007 Linux操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 xlanchen@ustc.edu.cn 3606864-83(西区电三421) Autumn 2007

程序的执行 xlanchen@2007.10.16

操作系统是如何通过可执行文件的内容建立进程的执行上下文的? 可执行文件的格式 程序以可执行文件的形式存放在磁盘上 库 可供很多程序使用的一些例程的集合 静态库 vs 共享库 命令行参数、环境变量等 Shell提示符下输入 从shell继承而来,用户可修改 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 提纲 可执行文件 可执行格式 Exec函数 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 可执行文件 可执行文件是一个普通的文件,它描述了如何初始化一个新的进程上下文 Fork + execve xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 命令行参数和shell环境 用户使用shell来执行某个程序时,可以指定命令行参数 例如:$ ls -l /usr/bin 列出/usr/bin下的目录信息 Shell本身不限制命令行参数的个数,但它受限于命令自身 例如,int main(int argc, char *argv[]) 又如, int main(int argc, char *argv[], char *envp[]) xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 命令行参数和环境串都放在用户态堆栈中 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 库 源文件目标文件可执行文件 最小的程序也会利用到C库 例如:void main(void) {} 要为main的执行建立执行上下文 在进程结束时,杀死进程(在main的最后插入exit()) 其他库 libm,包含浮点操作的基本函数 libX11,所有X11窗口系统图形接口的基本底层函数 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 静态链接 vs 动态链接 静态库 动态链接:共享库 Gcc的-static选项指明使用静态库 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 程序段和进程的线性区 在逻辑上,Unix程序的线性地址空间被划分为各种段(segment) 正文段,text 数据段,data Bss段 堆栈段 在mm_struct中都有对应的字段 start_code/end_code、start_data/end_data、start_brk/brk、start_stack、arg_start/arg_end、env_start/env_end xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 此外,还有共享库和文件的映射,他们映射在其他线性区 参阅/proc/1/maps了解init进程的线性区 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 可执行格式 Linux标准的可执行格式 ELF:Executable and Linking Format 旧版的可执行文件格式 a.out:Assembler OUT put format 其他 MS-DOS的exe文件 UNIX BSD的COFF文件 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems Linux对可执行文件格式的处理 在系统启动时,所有编译进内核的可执行格式都被注册 在系统运行过程中,也可以注册一个新的可执行文件格式 使用linux_binfmt对象管理 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems linux_binfmt 链表,连接所有linux_binfmt对象 通过读存放在可执行文件中的信息为当前进程建立一个新的进程上下文 动态的把一个共享库绑定到一个已经在运行的进程 将当前进程的上下文保存到名为core的文件中 xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems Linux通过可执行文件的扩展名或者存放在文件前128字节的magic数来识别文件格式 文件扩展名 Exe Bat … xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems Exec函数家族 指定被执行文件的路径名 用一个指定的可执行文件所描述的上下文代替进程的上下文 系统调用:execve sys_execve xlanchen@2007.6.25 Embedded Operating Systems

Embedded Operating Systems 作业 什么是线性区?列举4种最常见的线性区。 Linux如何描述进程的地址空间? xlanchen@2007.6.25 Embedded Operating Systems