一.计算机基础
1.
寄存器速度比内存快,但是存储量小16字节,或32字节。
main.c->main.exe 在磁盘上
./main 加载到内存中
2.存放速度
存放速度<内存<cache缓存<内存器
3.指令是在硬件上完成的程序是由指令构成的 (操作码)
4.操作系统:管理计算机上的软硬件资源,为用户提供一个交互的接口。
模块分为:进程管理:一个正在运行的程序
内存管理,文件管理。
5.PCB:进程控制块、(进程描述符)
进程控制块是进程存在的唯一标志
进程状态: 就绪 、运行、阻塞
pid:唯一标识进程的一个id号

6.虚拟内存
虚拟内存提供的三个重要的能力:
1) 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区
域,根据需要在磁盘和主存之间来回传送数据,使得能够运行比内存大的多的进程。
2) 它为每个进程提供了一致的地址空间,从而简化了存储器管理
3) 它保护每个进程的地址空间不被其他进程破坏
二.主函数
1.printf
printf 函数输出问题
printf 函数并不会直接将数据输出到屏幕,而是先放到缓冲区中,只有一下三种情况满
足,才会输出到屏幕。
1.缓冲区满
2. 强制刷新缓冲区 fflush, (屏幕输出时\n,stdin,stdout,stderrd的类型为FILE*)
3.程序结束时
1)
先阻塞三秒在打印 先打印在阻塞三秒
2)exit:先刷新,然后把缓冲区的内容打印到屏幕上
_exit:程序直接退出,不会刷缓冲区
什么也看不到
\n:如果是往屏幕上输出的话 ,换行符可以达到强制刷新缓冲区,虽然缓冲区没有放满,但是要求 输出去 ,加\n后在第十行后直接 打印出去
3)
4)
SHELL为环境变量名 ,/bin/bash 为环境变量的值
main(),3个参数,参数个数,参数类型,环境变量