Linux多线程、进程、开发板

多线程

1、线程

同一进程中,执行的每个任务都被视为一个线程。
一个进程中可以包含多个线程,所有线程共享进程拥有的资源。当然,每个线程也可以拥有自己的私有资源。

2、查看源代码

源代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、编辑

gcc 1.pthread_create_exit.c -pthread
./a.out

结果如下:
在这里插入图片描述

gcc -pthread 2.pthread_join.c -lm
./a.out

在这里插入图片描述
其中“-lm”出现的原因是无法运行,通过查询"man tan"可知,需要加上"-lm"。

gcc -pthread 3.pthread_attr_init_destroy_getstack-foo_bar.c
./a.out

未出现结果
未出现结果

gcc -pthread 4.pthread_mutex.c
./a.out

在这里插入图片描述

gcc -pthread 5.pthread_dead_lock_of_mutex.c
./a.out

在这里插入图片描述

gcc -pthread 6.pthread_conditional_var.c
./a.out

在这里插入图片描述
在这里插入图片描述

进程

1、概念

程序以源文件的方式存储在外存(比如硬盘、U盘等)中,只有运行的时候才会被载入内存。对于支持并行的操作系统来说,必须为每一个运行的程序分配所需的资源(内存空间、输入输出设备等),并确保同时运行的程序之间不会相互干扰,为此,操作系统将每一个运行着的程序视为一个进程:
(1)操作系统以进程为单位,为每个进程分配执行所需要的资源;
(2)原则上,各个进程之间不允许访问对方的资源;
(3)操作系统实时监控着每个进程的执行状态,必要时可以强制其终止执行。

2、编辑

使用makefile,命令为make
在这里插入图片描述
例如:

./3-fork-print-pid.c

结果如下:
在这里插入图片描述

开发板

准备好虚拟机和ubuntu系统,本实验版本为ubuntu18.04x64
参考文档:https://www.csdn.net/tags/OtTaYgwsODIwOTAtYmxvZwO0O0OO0O0O.html

1、下载成功后,进入ubuntu-18.04_imx6ul_qemu_system目录,执行install_sdl.sh

2、运行QEMU

./qemu-imx6ull-gui.sh

在这里插入图片描述

下载、编译内核

参考:http://wiki.100ask.org/Qemu
安装 lzop 工具,执行如下指令:$ sudo apt-get install lzop
下载源码:

$ git clone https://e.coding.net/codebug8/repo.git
$ mkdir -p 100ask_imx6ull-qemu && cd 100ask_imx6ull-qemu
$ ../repo/repo init -u https://e.coding.net/weidongshan/manifests.git -b linux-sdk -m  imx6ull/100ask-imx6ull_qemu_release_v1.0.xml --no-repo-verify

设置工具链

$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabihf-
$ export PATH=$PATH:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin

配置、编译内核

安装交叉编译器

$ sudo apt install gcc-arm-linux-gnueabihf        // 安装编译器。
$ cd linux-4.9.88
$ make mrproper
$ make 100ask_imx6ull_qemu_defconfig
$ make zImage     //这一步需要等待一段时间

在QEMU中使用新的zImage:把编译出来的zImage复制到QEMU目录即可。
QEMU所用的内核里已经带有LCD驱动程序了,要测试我们编写的驱动程序,需要替换LCD驱动程序。

#obj-y += 100ask_qemu_fb.o
obj-y += lcd_drv.o

最后,即可重新执行make zImage编译内核,内核里就含有新的驱动程序了。
测试结果如下:
在这里插入图片描述

https://blog.csdn.net/sl_97/article/details/124079925?spm=1001.2014.3001.5501

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值