chapter 1-Introduction

Slides:



Advertisements
Similar presentations
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Advertisements

河內塔(Hanoi)問題.
C语言程序设计 主讲教师 :张群燕 电话:
第1单元 操作系统概论 第一节 绪论 操作系统定义.
行程(process).
第九章 字串 (String).
操作系统原理 Principles of Operating System
基于操作系统的编程复习 张玉宏
光隆家商 優質化計畫 簡報 校 長 楊瑞明 教務主任 高美麗
第 5 章 文件I/O操作.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
南京天石软件技术有限公司 陈锺 (QQ: Solaris 10 C编程 南京天石软件技术有限公司 陈锺 (QQ:
C语言程序设计 第十二章 位运算.
第一章 程序设计入门.
高级语言程序设计 主讲人:陈玉华.
主讲教师:吴琼 微信群:C语言2016 QQ群: 密码scu2016 昵称:“真名+学号”
選擇排序法 通訊一甲 B 楊穎穆.
佇列 (Queue).
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
第四章 函数和递归.
第7章 Linux环境编程.
第四讲 MPI并行程序设计 课程网站:CourseGrading buaa.edu.cn 主讲教师: 赵长海
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
Chapter 3 行程觀念 (Process Concept)
多进程编程.
STRUCTURE 授課:ANT 日期:2010/5/12.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
Function.
程序设计期末复习 黎金宁
程序设计专题一 结构化程序设计与递归函数 主讲教师: 刘新国.
进程操作.
Process management(程序管理)
6 使用者函數 6.1 函數定義 宣告函數 呼叫函數 呼叫多個函數 6-6
第3章 堆栈和队列 堆栈 堆栈应用 队列 队列应用 优先级队列 主要知识点.
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
THE C PROGRAMMING LANGUAGE
字符串和字符数组 字符串的输入和输出 字符串的基本操作
Linux 文件操作——系统调用和标准 IO 库
第三章 数据类型、运算符与表达式.
实验一、进程控制 一、实验目的 1、加深对进程的理解,进一步认识并发执行的实质; 2、分析进程争用资源现象,学习解决进程互斥的方法;
第2章 进程和线程 内容提要: 2.1 进 程 概 念 2.2 进程的状态和组成 2.3 进 程 管 理 2.4 线 程.
Struct結構 迴圈
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
C標準輸出入函數庫 與 作業系統.
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
95年度高屏醫療網 以病人為中心之醫療照護— 以弱勢族群為重點 期末報告
第二章 类型、对象、运算符和表达式.
隨機數 (亂數) 10後,取餘數 n = rand(); 利用 Code::Block 驗證一下 n = rand() %10; 998
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
挑戰C++程式語言 ──第9章 函數.
報告人:采玲 班級:六年二班 指導老師:陳妙菁
Computer Science & Information Management
实验二:添加Linux系统调用及熟悉常见系统调用
第十二章 位运算.
永續校園規劃與管理 第十二講 永續校園管理 授課教師 彭立沛 2003/05/24.
第18讲 从C到C++ 计算机与通信工程学院.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
第6章 嵌入式软件开发基础.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab2.
实验三 Linux文件目录操作 一、目的 二、要求 了解并掌握Linux文件目录结构。 了解Linux文件系统与目录操作:
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Introduction to the C Programming Language
《操作系统设计与实现》 Linux系统编程.
整合、改善學生修課資訊 建構全校課程地圖 報告單位:弘光科技大學通識學院 報告日期:100 年01月11日 報 告 人:通識學院楊士奇組長.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

chapter 1-Introduction chenbo2008@ustc.edu.cn 中国科学技术大学软件学院

课程内容介绍 课程 相应实验 第一部分:linux嵌入式开发基础 linux的基本命令实验 VI编辑器实验 模块的编写实验 第二部分:驱动基础-字符设备驱动 简单字符设备驱动的编写 scull驱动程序的理解 第三部分:字符设备驱动核心理论(并发、中断、定时器、阻塞、I/O操作、内存分配等) 驱动程序中并发实验 驱动程序中中断实验 驱动程序中定时器实验 驱动设计中阻塞实验 第四部分:块设备、网络设备驱动 块设备驱动程序实验 驱动示例 A/D驱动程序解析 触摸屏驱动程序解析 USB摄像头驱动分析

initialize() while(true) { if (condition_1) action_1(); if (condition_2) action_2(); ...... if (condition_n) acition_n(); } Check for Input Do Something

? #include <sys/types> #include <sys/stat.h> /*库文件在/usr/include/下*/ #include <fcntl.h> #include <stdio.h> #define LENGTH 100 main() { int fd,len; fd =open("hello.txt",O_CREAT | 0_RDWR,S_IRUSR |S_IWDSR); char str[LENGTH]; if (fd) write(fd,"hello world",strlen("hello world"));/*写入*/ close (fd); } fd =open("hello.txt",O_RDWR);/*打开文件*/ len=read(fd,str,LENGTH);/*读取文件内容*/ str[len]='\0'; printf ("%s\n",str); close(fd); ?

1 2 3 4 5 Process Management Memory Management Virtual File systems Network management 4 Inter-Process Communication 5

#include <syscall.h> #include <unistd.h> #include <stdio.h> #include <sys/types.h> int main(void) { long ID1, ID2; /*-----------------------------*/ /* SYS_getpid (func no. is 20) */ ID1 = syscall(SYS_getpid); printf ("syscall(SYS_getpid)=%ld\n", ID1); /* SYS_getpid (Func No. is 20) */ ID2 = getpid(); printf ("getpid()=%ld\n", ID2); return(0); }

Inter-Process Communication Sender: struct msg{ long msg_types; char msg_buf[511]; }; int main( void ) { int qid; int pid; int len; struct msg pmsg; pmsg.msg_types = getpid(); sprintf (pmsg.msg_buf,"hello!this is :%d\n\0", getpid() ); len = strlen ( pmsg.msg_buf ); if ( (qid=msgget(IPC_PRIVATE, IPC_CREAT | 0666)) < 0 ) { perror ( "msgget" ); exit (1) ; } if ( (msgsnd(qid, &pmsg, len, 0 )) < 0 ){ perror ( "msgsn" ); exit ( 1 ); printf ("successfully send a message to the queue: %d \n", qid); exit ( 0 ) ;

Inter-Process Communication Accepter: struct msg{ long msg_types; char msg_buf[511]; }; int main( int argc, char * argv[] ) { int qid; int len; struct msg pmsg; if ( argc != 2 ){ /**/ perror ( "USAGE: read_msg <queue ID>" ); exit ( 1 ); } qid = atoi ( argv[1] ); len = msgrcv ( qid, &pmsg, BUFSZ, 0, 0 ); if ( len > 0 ){ pmsg.msg_buf[len] = '\0'; printf ("reading queue id :%05ld\n", qid );

linux operation

linux operation

linux operation-soft link

linux operation

thank you !