计算机系统学习笔记<一>

来源:互联网 发布:linux 获取未激活网卡 编辑:程序博客网 时间:2024/05/22 13:39
计算机是由硬件软件组成的, 硬件相当于肉体而软件相当于灵魂,两者是相辅相成的。软件分为系统软件和应用软件他们和硬件的关系是应用软件位于最外层,中心是硬件,系统软件位于两者中间。
  系统软件有很多种但是最重要的两个是操作系统和编译程序。
  操作系统作用:1.处理基本输入输出操作 2.分配内存和外存 3.为多个应用程序提供共享资源 编译系统是把高级语言(java ,c等)翻译成硬件能识别的机器语言帮助我们与计算机建立联系
  硬件是由输入,输出(Io设备 ), 存储器,运算器,控制器五大部件组成   其中运算器,控制器是在处理器里面是计算机的核心,整个计算机执行的的指令都是由它进行控制
  存储器存储着要处理的数据和指令,输入,输出则是负责输入信息和输出信息的.连接五大部件的是总线,它将整个系统通过电子管道连接起来来传送数据。
  我们通过执行一个hello.c程序来了解计算机是怎样运行一个程序的
  首先hello.c的源程序为:
  #include<stdio.h>
  int main() {
  
  printf("hello ,world\n");
  }                    
   它是通过键盘这个IO设备输入这个程序并通过ASCII标准将字母变成单字节整数表示的字符保存在磁盘里面.然后通过编译程序进行翻译转换成机器能识别的二进制数。先经过预处理器根据#开头命令
   读取系统头文件stdio.h把它插入文本中得到以i为文件的扩展名的c程序
   再经过编译器将其翻译成汇编语言它是机器代码的文本表示,通过汇编语言人类可以近距离的观察机器代码,这时生成hello.i的源程序   。
   在经过汇编器翻译成机器指令生成hello.o的源程序
   最后通过链接器调用printf函数,这是标准C库中的一个函数,它已经预编译过所以直接将print.o合并到hello.o的程序里最终生成目标程序hello它可被内存执行
   hello这时还在磁盘里面通过运行hello时会把文件复制到主存中然后处理器就能调用它生成"hello,world \n”放在寄存器文件。最后从寄存器 复制到并在屏幕上输出 。
   从执行过程看出系统花了大部分时间移动文件,而在移动文件过程中磁盘到主存两边读取速度不相同主存读取文件速度是磁盘的100w倍,而寄存器是主存的100倍。而快的设备不能耗着在漫长等待过程中所以有了
   缓存的概念快的设备在慢的设备传送文件时候可以不要理睬等缓存一定量以后直接从缓存中拿数据,在次期间它可以干自己的事
   好像hello文件在运行的时候计算机只为它一个程序服务一样其实它在运行时有其他程序也在运行只不过计算机通过进程交叉运行,这样每个CPU时间就只有一个进程在运行。切换至其他进程时系统会
   跟踪其上下文情状态再切换回来就会保持这种上下文情况就能再次执行没运行完的任务   奋斗(本人第一次写,所以写得不好)
0 0
原创粉丝点击