当前位置: 移动技术网 > 网络运营>服务器>Linux > 苏嵌实训嵌入式 linux C 第7天

苏嵌实训嵌入式 linux C 第7天

2020年07月15日  | 移动技术网网络运营  | 我要评论

项目开发日报表

项目名称 苏嵌实训-嵌入式 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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网