当前位置:   article > 正文

CSAPP學習筆記_relocatable object program

relocatable object program

第一章:計算機系統漫遊

信息=位+上下文。所有信息都是由一串位表示的。區分的方法就是上下文,比如同一 位序列可以表示int、float、string、或是指令。

文本文件:只由ASCII字符組成的文件。(當然,由於各種語言的擴展,不一定只有ASCII了。個人理解)。不同於文本文件的就是二進制文件了。


編譯系統:現在有一個a.c的源文件,裏面就是簡單的helloworld的輸出。這個文件經過 預處理器(cpp) 生成 格式爲 .i 的文件(被修改的文本,插入插入了#include的內容),再經過 編譯器(ccl)生成 .s 的彙編文本 再經過 彙編器(as) 生成  .o文件(relocatable object program,可重定位目標程序,二進制)在經過 鏈接器(ld)加入 printf.o 生成elf

系統硬件組成:總線,i/o,主存(DRAM),CPU

存儲器具有層次結構,高速緩存(cache)至關重要,如L1、L2、L3(SRAM)

硬件由os管理:防止程序濫用硬件 ;向程序提供簡單的機制控制低級硬件設備


抽象的概念在計算機系統中經常用到:I/O設備(包括網絡)被抽象成文件。主存+I/O設備被抽象成 虛擬存儲器,虛擬存儲器再加上CPU被抽象成進程,進程+os被抽象成虛擬機。

進程:os提供假象,系統上只有這個程序在run,只有這個程序佔據所有的硬件資源。進程是os對正在運行的程序的抽象;

併發運行: 多個進程、指令交錯執行,靠的是CPU在進程間切換。交錯執行的機制是上下文切換,保存當前進程上下文,恢復新進程的上下文,控制權給新進程。上下文指的是os跟踪进程的状态信息,比如PC、寄存器、主存 内容


线程:每个线程运行在进程的上下文中,共享代码和全局数据。虚拟存储器:为进程提供假象:每个进程独占主存。

linux内存结构


并发:通用的概念,一个同时具有多个活动的系统;并行:用并发使系统运行更快。线程级并发,指令级并行、单指令多数据并行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/160756
推荐阅读
相关标签
  

闽ICP备14008679号