苏嵌实训嵌入式 linux C 第7天
程序员文章站
2022-04-02 11:30:08
项目开发日报表项目名称苏嵌实训-嵌入式 linux C 第七天今日进度以及任务Linux下文件编程和多任务编程(进程、线程)任务完成情况课内题目已完成,课堂笔记已整理开发中出现的问题汇总无未解决问题编程速度太慢,有点跟不上,平时练习太少。之后需要多加练习。开发收获了解creat/open/read/write/lseek/close的使用,学习进程,线程的基本操作其他无 课堂内容整理嵌入式Linux C编程:在Linux上使用C语言...
项目开发日报表
项目名称 | 苏嵌实训-嵌入式 linux C 第七天 |
---|---|
今日进度以及任务 | Linux下文件编程和多任务编程(进程、线程) |
任务完成情况 | 课内题目已完成,课堂笔记已整理 |
开发中出现的问题汇总 | 无 |
未解决问题 | 编程速度太慢,有点跟不上,平时练习太少。之后需要多加练习。 |
开发收获 | 了解creat/open/read/write/lseek/close的使用,学习进程,线程的基本操作 |
其他 | 无 |
课堂内容整理
- 嵌入式Linux C编程:在Linux上使用C语言调用操作系统功能接口开发应用程序。
- 文件编程、多任务编程(进程、线程)、网络编程
- 嵌入式为什么要移植操作系统?
1、提供软件的移植性;
2、操作系统提供了多任务操作;
3、操作系统提供了丰富的网络协议栈;
4、操作系统将所有设备抽象成文件,方便访问设备;
- Linux系统构成/划分:用户空间、内核空间
- 为什么将系统划分为用户空间、内核空间?
保护内核的安全; - 用户该如何访问内核空间?
通过系统调用 - 内核提供安全的访问内核的数据及服务的接口:系统调用
- 用户如何发生系统调用?
调用系统提供的编程函数接口–API(用户编程接口)
文件编程
- 文件描述符,系统给的文件ID号(无符号整型)
知道一个文件描述符、操作这个文件描述符,相当于再操作这个文件 - 文件描述符的分配方式
动态分配(只有当你操作这个文件、系统才会给你分配文件描述符,使用完毕之后回收)
0、1、2这三个文件描述符已经被系统占用,有特殊作用,所以说系统的普通文件id是从3开始的 - 文件API(记头文件、记函数原型(形参和返回值的作用)、写测试、应用)
creat\open\read\write`seek\close
多任务编程
- 什么是多任务?
单任务:在一个任务执行期间,其他任务不能被调度;
多任务:当前CPU单核,存在任务并发,不存在并行;
当前CPU多核,既存在并发,也存在并行
- 实现多任务的方式:进程,线程
进程:实现多任务的开销较大,因为每个进程都有4G的独立地址空间,
导致进程间通信效率不高
优点:安全。
线程:实现多任务的开销较小,因为每个线程共享地址空间,通信效率高
缺点:不安全。
- 进程切换计算机资源开销大, 进程间数据共享的开销也很大。
- 进程退出后,进程中所有的线程全部退出
- 一个进程崩溃后不会对其他进程产生影响,但一个线程崩溃,整个进程都要死掉 线程不可能完全替代进程
本文地址:https://blog.csdn.net/Rain_0000/article/details/107324186
推荐阅读