嵌入式Linux应用程序开发.pptxVIP

  • 5
  • 0
  • 约7.64千字
  • 约 67页
  • 2023-02-03 发布于四川
  • 举报
嵌入式Linux应用程序开发第一页,共六十七页。课程安排Linux系统文件与I/OLinux系统多进程并发Linux系统多线程并发Linux系统网络通信第二页,共六十七页。Linux文件Linux一切皆文件:Linux上的任何事物都可以用一个文件代表,可以通过文件操作该事物(1)普通文件( regular file )(2)目录:包含了其他文件的名字以及指向与这些文件有关信息的指针(3)设备文件(/dev):字符特殊文件、块特殊文件(4)FIFO:用于进程间的通信,有时也将其称为命名管道(5)符号连接(symbolic link):指向另一个文件(6)套接口(socket):用于宿主机间网络通信第三页,共六十七页。Linux文件操作1、Linux系统基本操作函数:open、close、read、write和ioctl 2、Linux对文件的操作基于打开的文件描述符第四页,共六十七页。标准输入索引0标准输出索引1标准出错索引2已打开文件3已打开文件4…索引1024已打开文件1024文件描述符表Linux文件描述符1、linux内核是通过文件描述符区分和引用文件,文件描述符表示一个已打开的 文件2、文件描述符为非负整数,保存了进程文件描述符表(已打开文件表)的索引3、一个进程启动后,系统自动打开3个文件:标准输入、标准输出、标准出错,对应文件描述符为: STDIN_FILENO(1)、STDOUT_FILENO(2)、STDERR_FILENO(3)4、Linux上一个进程可打开的最大文件描述符值为1024第五页,共六十七页。文件描述符实例第六页,共六十七页。Linux系统IO操作1、Linux系统实现一整套文件处理函数,统一操作Linux上的文件:普通文件、网络socket文件、设备文件等2、这些函数通过系统调方式实现,称为系统IO: open – 打开或创建一个文件 creat – 建立一个空文件 close – 关闭一个文件 read – 从文件读入数据 write – 向文件写入一个数据 lseek – 在文件中移动读写位置 unlink – 删除一个文件 remove – 删除一个文件本身 fcntl – 控制一个文件属性第七页,共六十七页。IO操作实例—实现文件拷贝第八页,共六十七页。课程安排Linux系统文件与I/OLinux系统多进程并发Linux系统多线程并发Linux系统网络通信第九页,共六十七页。什么是进程操作系统将程序读入内存,分配ID,管理程序的执行状态,形成进程,进程可以看一个正在执行的程序实例,有自己的地址空间和执行状态进程作为构成系统的基本细胞,不仅是系统内部独立运行的实体,而且是独立竞争资源的基本实体Linux是一个多进程的系统,进程之间具有并行性、互不干扰:1、每一个进程都运行在各自独立的虚拟地址空间2、即使一个进程发生异常,也不会影响其他进程3、通过ps -el命令可以查看当前系统上运行的所有用户进程信息进程是运行中的程序!第十页,共六十七页。命令行参数,环境变量高地址0x3FFFFFFF栈(stack)共享内存堆(heap)未初始化数据段(BSS)静态映像数据段(DATA)代码段(TEXT)0地址程序运行映像布局第十一页,共六十七页。Linux上的进程1、内核空间与用户空间 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,Linux的虚拟地址空间也为0~ 4G 最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)供内核使用,称为“内核空间” 较低的3G字节(从虚拟地址00xBFFFFFFF)供各个进程使用,称为“用户空间”) 每个进程可以通过系统调用进入内核,Linux内核由系统内的所有进程共享 从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间第十二页,共六十七页。Linux上的进程2、内核态与用户态 当进程执行系统调用而进入内核代码中运行时,我们就称进程处于内核运行态(或简称为内核态) 此时处理器处于特权级(高级),可以执行特权指令,不受其他进程干扰 当进程在执行用户自己的代码时,则称其处于用户运行态(用户态) 此时处理器处于用户级(低级)3、进程调度 在Linux中,每个进程在创建时都会被分配一个数据结构,称为进程控制块(Process Control Block)简称PCB,供系统调度和进程本身执行使用 调度时,Linux系统以分时复用机制调度多个进程,进程调度过程成为进程上下文切换(context switch):即将一个进程从运行状态退出,并运行另一个进程第十三页,共六十七页。进程调度第十四页,共六十七页。进程号(PID)1、在Linux 操作系统中以PID唯一地标识一个进程 进程ID(PID

文档评论(0)

1亿VIP精品文档

相关文档