IPC. Semaphores were chosen for synchronisation (out of several options).
|
|
- Randall Watts
- 2 years ago
- Views:
Transcription
1 IPC Two processes will use shared memory to communicate and some mechanism for synchronise their actions. This is necessary because shared memory does not come with any synchronisation tools: if you can access it at all, you can access it anytime regardless of the other process. Semaphores were chosen for synchronisation (out of several options). Note that there is a much simpler way to implement a solution to the producer consumer (with confirmations) problem: two message queues. 1
2 References Beej s guide to shared memory Beej s guide to semaphores Linux guide (sketchy) Marshall s guide to shared memory Marshall s guide to semaphores Another attempt to explain shared memory 2
3 IPC identifier Each IPC object is identified by two labels: key: which is an external identifier. All the processes that want a given object must produce the one and only key that allows access to it. identifier: once a key was accepted, a process will refer to an IPC object by an internal id (an object will have a different id in each process using it). A key identifies uniquely an object in a particular IPC domain but can be used simultaneously in several domains. 3
4 There are two ways of getting a key: Invent one Pick any number such as and use it. As long as nobody picks the same number, you are fine (the number above should be avoided: it is the telephone of the White House). Get one from the system A special system call ftok() exists solely to give you a unique key based on two arguments: key = ftok( char, char ) ; where the first argument is the path of any existing (and accessible) file in the system and the second argument is a number between 0 and 255 (every character has this property). domains. 4
5 Acquiring some shared memory You already have your favourite key and you want a shared memory area of size bytes with access rights shmflg. A call like this will create one: if ((shmid = shmget (key, size, shmflg )) == 1) { perror("shmget failed"); exit( 1); The access rights could be: 0666 (anybody can do anything) plus create or fail: shmflg = 0666 IPC CREAT IPC EXCL ; It could also be: 0640 (the owner can do anything, group members may read) plus create or fail: shmflg = 0640 IPC CREAT IPC EXCL ; 5
6 shmget() got you a shared memory identifier but it is not a pointer to a location in memory and thus is useless in itself. What you need is a pointer that you can use to access the memory area: shmptr = shmat( shmid, mychoice, 0 ) ; if( shmptr == (char ) 1 ) { perror( "shmat" ) ; exit( 1 ) ; The second argument mychoice is almost always 0; if not, it asks that the value returned by shmat be equal to this argument, if possible. The last argument gives access rights again. Now you can access the shared memory using the pointer provided by shmat(). 6
7 Here is some nonsensical code copied from Marshall: main() { char c; int shmid; key t key = 5678 ; char shm, s; if ((shmid = shmget(key, 27, IPC CREAT 0666)) < 0)... if ((shm = shmat(shmid, 0, 0)) == (char ) 1)... s = shm; for (c = 'a'; c <= 'z'; s++ = c++) ; s = NULL; while ( shm! = '*') sleep(1); 7
8 Creating a semaphore You cannot get one semaphore; you must ask for an array of them. The code below asks for nsems semaphores. if ((semid = semget(key, nsems, semflg)) == 1) { perror("semget failed"); exit( 1); You give a magic key which is the external name ( public name ) of your semaphore cluster and you provide flags that indicate what access permission you are willing to grant to users of this cluster. The standard permission is 0600 (I can read and write and nobody else can). The returned value is an identifier (not a pointer). A semaphore is a tightly controlled entity and you cannot simply access it directly as in: semid[2] = 0 ; This will not compile. If you want to set the third semaphore of the cluster identified by semid to 0, you must use the system call semctl() which has most obscure semantics. 8
9 Acquiring a semaphore (again) The key is the public name of the semaphore cluster you want; the same name will be used by all the processes that will share this semaphore cluster. Consider using the inode of the current directory (if you are there, it is accessible) to create 2 semaphores with the requirement that they must be brand new: key = ftok( ".", 'Q' ) ; semid = semget( key, 2, 0600 IPC CREAT IPC EXCL ) ; if( semid == 1) { perror( "semget refused" ); kill( getpid(), SIGINT ) ; The Q argument is an integer between 0 and 255 (as required). 9
10 Clean after your code void delete( int sig ) { printf( "Cleaning\n" ) ; shmctl( shmid, IPC RMID, 0 ) ; semctl( semid, IPC RMID, 0 ) ; exit( 0 ) ; void start( ) { signal( SIGINT, delete) ;
11 Semaphore operations Two operations are of real interest: semctl() allows to manipulate the values of semaphores. semop() provides the basic P and V operations on a semaphore. You can use semop() to define your own operations (such as a non blocking Poll()). 11
12 Basic use of semaphores P( semaphore ) ;... modify the shared memory... V( semaphore ) ; If the semaphore is properly initialised (to 1), the P operation will block any process that wants to touch the shared memory when another process is doing so. 12
13 void V( int s ) { struct sembuf S ; S.sem num = s ; S.sem op = 1 ; if( semop( semid, &S, 1 ) == 1 ) { perror( "V failed" ) ; kill( getpid(), SIGINT ) ; 13
14 P void P( int s ) { struct sembuf S ; S.sem num = s ; S.sem op = 1 ; while( semop( semid, &S, 1 ) == 1 ) { perror( "P failed" ) ; sleep( 1 ) ; This code assumes that semop() failed due to an interrupted system call ordue to a race condition (this is the purpose of the sleep()). It will not work if there is asynchronisation error; in such case, it will loop forever. 14
15 semun The system call semctl requires a union type called semun. Some systems have it defined in bits/sem.h (called inside sys/sem.h); other systems require that you define it yourself. #include<sys/sem.h> #ifdef SEM SEMUN UNDEFINED union semun { int val ; struct semid ds buf ; unsigned short array ; ; #endif // SEM SEMUN UNDEFINED Consult the file /usr/include/bits/sem.h for details. 15
16 Two non standard operations on semaphores: a non blocking Poll() and an initialisation function I(). int Poll( int s ) { return semctl( semid, s, GETVAL ) ; void I( int s ) { union semun arg ; arg.val = 1 ; // sets it to 1 if( semctl( semid, s, SETVAL, arg ) == 1 ) perror( "semctl" ) ; 16
17 struct VID { int code ; // the current state of this entry // = 0 empty (sem 0 == 1) // = 1 vid inside (sem 1 == 0) // = 2 confirmed vid (sem 1 == 0) pid t pid ; // Validator s pid int vid ; // the vid to be recorded ; int confirmation ; // passed back from Tallier 17
18 fh = fopen( "Booth pid pid", "w" ) ; if( fh == NULL ) perror( "Could not open the pid file" ) ; fprintf( fh, "%d\n", getpid() ) ; fclose( fh ) ; key = ftok( "/dev/null", 'B' ) ; if( (key t) key == 1 ) perror( "ftok" ) ; shmid = shmget( key,... shmptr = (struct VID )shmat( shmid, 0, 0 ) ; ) ; semid = semget( key, 2, 0600 IPC CREAT IPC EXCL 18
Critical section problem (repetition)
C&UNIX Critical section problem (repetition) 1 Critical section problem (repetition) repeat entry section critical section exit section remainder section until false; Två processer: P 0, P 1 ej samtidigt
Shared Memory Segments and POSIX Semaphores 1
Shared Memory Segments and POSIX Semaphores 1 Alex Delis delis -at+ pitt.edu October 2012 1 Acknowledgements to Prof. T. Stamatopoulos, M. Avidor, Prof. A. Deligiannakis, S. Evangelatos, Dr. V. Kanitkar
Chapter 3 Memory Management
Chapter 3 Memory Management Basic memory management Swapping Virtual memory Page replacement algorithms Design issues for paging systems Segmentation Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Basic Signal Programming
Basic Signal Programming 1 What is a signal? Signals are generated when an event occurs that requires attention. It can be considered as a software version of a hardware interrupt Signal Sources: Hardware
System Calls and Standard I/O
System Calls and Standard I/O Professor Jennifer Rexford http://www.cs.princeton.edu/~jrex 1 Goals of Today s Class System calls o How a user process contacts the Operating System o For advanced services
Outline. Review. Inter process communication Signals Fork Pipes FIFO. Spotlights
Outline Review Inter process communication Signals Fork Pipes FIFO Spotlights 1 6.087 Lecture 14 January 29, 2010 Review Inter process communication Signals Fork Pipes FIFO Spotlights 2 Review: multithreading
Unix System Calls. Dept. CSIE 2006.12.25
Unix System Calls Gwan-Hwan Hwang Dept. CSIE National Taiwan Normal University 2006.12.25 UNIX System Overview UNIX Architecture Login Name Shells Files and Directories File System Filename Pathname Working
BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering
BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester
Illustration 1: Diagram of program function and data flow
The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline
Testing Database Performance with HelperCore on Multi-Core Processors
Project Report on Testing Database Performance with HelperCore on Multi-Core Processors Submitted by Mayuresh P. Kunjir M.E. (CSA) Mahesh R. Bale M.E. (CSA) Under Guidance of Dr. T. Matthew Jacob Problem
Format String Vulnerability. printf ( user input );
Lecture Notes (Syracuse University) Format String Vulnerability: 1 Format String Vulnerability printf ( user input ); The above statement is quite common in C programs. In the lecture, we will find out
displays a list of processes executed in current shell
A process consists of : - an executing (running) program - its current values - state information - the resources used by the operating system to manage the execution ps displays a list of processes executed
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
System Calls Related to File Manipulation
KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS Information and Computer Science Department ICS 431 Operating Systems Lab # 12 System Calls Related to File Manipulation Objective: In this lab we will be
Inter-Process Communication: Message Passing. Tore Larsen. Slides by T. Plagemann, Pål Halvorsen, Kai Li, and Andrew S. Tanenbaum
Inter-Process Communication: Message Passing Tore Larsen Slides by T. Plagemann, Pål Halvorsen, Kai Li, and Andrew S. Tanenbaum Big Picture shared memory message passing communication? Message Passing
Linux/UNIX System Programming. POSIX Shared Memory. Michael Kerrisk, man7.org c 2015. February 2015
Linux/UNIX System Programming POSIX Shared Memory Michael Kerrisk, man7.org c 2015 February 2015 Outline 22 POSIX Shared Memory 22-1 22.1 Overview 22-3 22.2 Creating and opening shared memory objects 22-10
SYSTEMS PROGRAMMING C++ INTRODUCTION
Faculty of Computer Science / Institute of Systems Architecture / Operating Systems SYSTEMS PROGRAMMING C++ INTRODUCTION Alexander Warg WHY C++? C++ is the language that allows to express ideas from the
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
Computer Systems II. Unix system calls. fork( ) wait( ) exit( ) How To Create New Processes? Creating and Executing Processes
Computer Systems II Creating and Executing Processes 1 Unix system calls fork( ) wait( ) exit( ) 2 How To Create New Processes? Underlying mechanism - A process runs fork to create a child process - Parent
OS: IPC I. Cooperating Processes. CIT 595 Spring 2010. Message Passing vs. Shared Memory. Message Passing: Unix Pipes
Cooperating Processes Independent processes cannot affect or be affected by the execution of another process OS: IPC I CIT 595 Spring 2010 Cooperating process can affect or be affected by the execution
M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE
M3-R4: PROGRAMMING AND PROBLEM SOLVING THROUGH C LANGUAGE NOTE: IMPORTANT INSTRUCTIONS: 1. Question Paper in English and Hindi and Candidate can choose any one language. 2. In case of discrepancies in
CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17
CSI 402 Lecture 13 (Unix Process Related System Calls) 13 1 / 17 System Calls for Processes Ref: Process: Chapter 5 of [HGS]. A program in execution. Several processes are executed concurrently by the
Module 816. File Management in C. M. Campbell 1993 Deakin University
M. Campbell 1993 Deakin University Aim Learning objectives Content After working through this module you should be able to create C programs that create an use both text and binary files. After working
IC221: Systems Programming 06-Week Written Exam [SOLUTIONS]
IC221: Systems Programming 06-Week Written Exam [SOLUTIONS] February 12, 2014 Answer the questions in the spaces provided on the question sheets. If you run out of room for an answer, continue on the back
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Lecture 25 Systems Programming Process Control
Lecture 25 Systems Programming Process Control A process is defined as an instance of a program that is currently running. A uni processor system or single core system can still execute multiple processes
pthread Tutorial August 31, Creating and Destroying Threads Creating Threads Returning Results from Threads...
pthread Tutorial c Copyright 2008 by Peter C. Chapin August 31, 2008 Contents 1 Introduction 2 2 Creating and Destroying Threads 3 2.1 Creating Threads........................... 3 2.2 Returning Results
OPERATING SYSTEMS. IIIT-Hyderabad
OPERATING SYSTEMS IIIT-Hyderabad OVERVIEW Introduction What is an OS/Kernel? Bootstrap program Interrupts and exceptions Volatile and Non volatile storage!!! Process Management What is a process/system
Data Types in the Kernel
,ch11.3440 Page 288 Thursday, January 20, 2005 9:25 AM CHAPTER 11 Data Types in the Kernel Chapter 11 Before we go on to more advanced topics, we need to stop for a quick note on portability issues. Modern
Lecture 03 Bits, Bytes and Data Types
Lecture 03 Bits, Bytes and Data Types In this lecture Computer Languages Assembly Language The compiler Operating system Data and program instructions Bits, Bytes and Data Types ASCII table Data Types
Writing Portable Programs COS 217
Writing Portable Programs COS 217 1 Goals of Today s Class Writing portable programs in C Sources of heterogeneity Data types, evaluation order, byte order, char set, Reading period and final exam Important
Shared Address Space Computing: Programming
Shared Address Space Computing: Programming Alistair Rendell See Chapter 6 or Lin and Synder, Chapter 7 of Grama, Gupta, Karypis and Kumar, and Chapter 8 of Wilkinson and Allen Fork/Join Programming Model
C Primer. Fall Introduction C vs. Java... 1
CS 33 Intro Computer Systems Doeppner C Primer Fall 2016 Contents 1 Introduction 1 1.1 C vs. Java.......................................... 1 2 Functions 1 2.1 The main() Function....................................
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct
Dr. Martin O. Steinhauser University of Basel Graduate Lecture Spring Semester 2014 Molecular Dynamics Simulations with Applications in Soft Matter Handout 7 Memory Diagram of a Struct Friday, 7 th March
Embedded System Curriculum
Embedded System Curriculum ADVANCED C PROGRAMMING AND DATA STRUCTURE (Duration: 25 hrs) Introduction to 'C' Objectives of C, Applications of C, Relational and logical operators, Bit wise operators, The
1. Constants. 2. Variables. 3. Reserved words or key words. 4. Constants. Character set in C
Character set in C We should use only the following characters in writing a C program. These characters can be combined to create C words. Alphabet: A, B, C, D.. Z, a, b, c, d..z Numeric digits: 0, 1,
Lecture 24 Systems Programming in C
Lecture 24 Systems Programming in C A process is a currently executing instance of a program. All programs by default execute in the user mode. A C program can invoke UNIX system calls directly. A system
C File Input and Output (I/O) CSE303 Todd Schiller November 9, 2009
C File Input and Output (I/O) CSE303 Todd Schiller November 9, 2009 Lecture goal Build a practical toolkit for working with files 11/09/09 2 Files in C #include FILE object contains file stream
CHAPTER 3, PROCESSES, DISCUSSED THE CREATION OF PROCESSES and showed
5 Interprocess Communication CHAPTER 3, PROCESSES, DISCUSSED THE CREATION OF PROCESSES and showed how one process can obtain the exit status of a child process.that s the simplest form of communication
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Linux Kernel Architecture
Linux Kernel Architecture Amir Hossein Payberah payberah@yahoo.com Contents What is Kernel? Kernel Architecture Overview User Space Kernel Space Kernel Functional Overview File System Process Management
1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
Interprocess Communication in Java
Interprocess Communication in Java George C. Wells Department of Computer Science, Rhodes University Grahamstown, 6140, South Africa G.Wells@ru.ac.za Abstract This paper describes a library of classes
1 Abstract Data Types Information Hiding
1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux
REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux Lesson-12: Real Time Linux 1 1. Real Time Linux 2 Linux 2.6.x Linux is after Linus Torvalds, father of the Linux operating
Program 5 - Processes and Signals (100 points)
Program 5 - Processes and Signals (100 points) COMPSCI 253: Intro to Systems Programming 1 Objectives Using system calls to create and manage processes under Linux and Microsoft Windows Using Visual Studio
CHAPTER 8 Programming with Shared Memory
Programming with Shared Memory Shared memory multiprocessor system Any memory location can be accessible by any of the processors A single address space exists, meaning that each memory location is given
Introduction. dnotify
Introduction In a multi-user, multi-process operating system, files are continually being created, modified and deleted, often by apparently unrelated processes. This means that any software that needs
1 Installation. 2 Setup. 3 Example 0. Jumpstart Flex and Bison Bo Waggoner Updated:
Jumpstart Flex and Bison Bo Waggoner Updated: 2014-10-18 Abstract Flex and Bison are tools for writing a compiler (they are free/replacement versions of the famous Lex and Yacc). We try to get some minimal
Basic C Syntax. Comp-206 : Introduction to Software Systems Lecture 10. Alexandre Denault Computer Science McGill University Fall 2006
Basic C Syntax Comp-206 : Introduction to Software Systems Lecture 10 Alexandre Denault Computer Science McGill University Fall 2006 Next Week I'm away for the week. I'll still check my mails though. No
Synchronization in Java
Synchronization in Java We often want threads to co-operate, typically in how they access shared data structures. Since thread execution is asynchronous, the details of how threads interact can be unpredictable.
Pointers. C and C++ Example. Manipulating pointers
Pointers C and C++ 3. Pointers Structures Alastair R. Beresford University of Cambridge Lent Term 28 Computer memory is often abstracted as a sequence of bytes, grouped into words Each byte has a unique
Joystick interface tutorial
Joystick interface tutorial Using the JSAPI through ʻCʼ 1 Example usage in C (using callbacks) 3 Using JSAPI through Java 4 Example usage in Java (using callbacks) 5 Calibrating the joystick 6 Using the
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY. 6.828 Operating System Engineering: Fall 2005
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2005 Quiz II Solutions Average 84, median 83, standard deviation
UNIT-1 PART-A UNIT-2 PART-A
UNIT-1 1. Define computer? 2. Discuss briefly about input and output devices? 3. What is a RAM? 4. What is arom? 5. What is a compiler? 6. Write about a linker? 7. List any 5 key wordsof c? 8. Illustrate
Operating Systems and Networks
recap Operating Systems and Networks How OS manages multiple tasks Virtual memory Brief Linux demo Lecture 04: Introduction to OS-part 3 Behzad Bordbar 47 48 Contents Dual mode API to wrap system calls
SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
Figure 1 Ring Structures
CS 460 Lab 10 The Token Ring I Tong Lai Yu ( The materials here are adopted from Practical Unix Programming: A Guide to Concurrency, Communication and Multithreading by Kay Robbins and Steven Robbins.
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
Programming for MSc Part I
Herbert Martin Dietze University of Buckingham herbert@the-little-red-haired-girl.org July 24, 2001 Abstract The course introduces the C programming language and fundamental software development techniques.
INDEX. C programming Page 1 of 10. 5) Function. 1) Introduction to C Programming
INDEX 1) Introduction to C Programming a. What is C? b. Getting started with C 2) Data Types, Variables, Constants a. Constants, Variables and Keywords b. Types of Variables c. C Keyword d. Types of C
10. The xv6 filesystem
Lecture Notes for CS347: Operating Systems Mythili Vutukuru, Department of Computer Science and Engineering, IIT Bombay 10. The xv6 filesystem 10.1 Device Driver The data structure struct buf (line 3750)
Jorix kernel: real-time scheduling
Jorix kernel: real-time scheduling Joris Huizer Kwie Min Wong May 16, 2007 1 Introduction As a specialized part of the kernel, we implemented two real-time scheduling algorithms: RM (rate monotonic) and
A Linked List Example
A Linked List Example http://gd.tuwien.ac.at/languages/c/programming-bbrown/c_094.htm /* linked list example */ #include #include #include #include #include
Introduction to Java A First Look
Introduction to Java A First Look Java is a second or third generation object language Integrates many of best features Smalltalk C++ Like Smalltalk Everything is an object Interpreted or just in time
Operating Systems. Week 2 Recitation: The system call. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems Week 2 Recitation: The system call Paul Krzyzanowski Rutgers University Spring 2015 February 14, 2015 2014-2015 Paul Krzyzanowski 1 System calls System calls are an operating system s
Lecture 5: Java Fundamentals III
Lecture 5: Java Fundamentals III School of Science and Technology The University of New England Trimester 2 2015 Lecture 5: Java Fundamentals III - Operators Reading: Finish reading Chapter 2 of the 2nd
MAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push) -----------------------------------------
=============================================================================================================================== DATA STRUCTURE PSEUDO-CODE EXAMPLES (c) Mubashir N. Mir - www.mubashirnabi.com
Introduction to C Programming S Y STEMS
Introduction to C Programming CS 40: INTRODUCTION TO U NIX A ND L I NUX O P E R AT ING S Y STEMS Objectives Introduce C programming, including what it is and what it contains, which includes: Command line
Integrating VoltDB with Hadoop
The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.
Chapter 13. Pointers and Linked Lists
Chapter 13 Pointers and Linked Lists Overview 13.1 Nodes and Linked Lists 13.2 Stacks and Queues Slide 13-2 13.1 Nodes and Linked Lists Nodes and Linked Lists n A linked list is a list that can grow and
2 ASCII TABLE (DOS) 3 ASCII TABLE (Window)
1 ASCII TABLE 2 ASCII TABLE (DOS) 3 ASCII TABLE (Window) 4 Keyboard Codes The Diagram below shows the codes that are returned when a key is pressed. For example, pressing a would return 0x61. If it is
key points from previous lecture Overview of Presentation Disables and Spin-locks revisited Interrupts when to disable them
Overview of Presentation key points from previous lecture Spin-locks, Interrupts and Exclusion reasonable use of interrupt routines and disabling spin locks revisited, and sleep/wakeup exclusion Semaphores
Sistemi Operativi. Lezione 25: JOS processes (ENVS) Corso: Sistemi Operativi Danilo Bruschi A.A. 2015/2016
Sistemi Operativi Lezione 25: JOS processes (ENVS) 1 JOS PCB (ENV) 2 env_status ENV_FREE: Indicates that the Env structure is inactive, and therefore on the env_free_list. ENV_RUNNABLE: Indicates that
NDK: NOVELL NSS AUDIT
www.novell.com/documentation NDK: NOVELL NSS AUDIT Developer Kit August 2015 Legal Notices Novell, Inc., makes no representations or warranties with respect to the contents or use of this documentation,
Dept. of CSE, IIT KGP
Programming in C: Basics CS10001: Programming & Data Structures Pallab Dasgupta Professor, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Types of variable We must declare the
Standard printing function in C is printf Prints everything numbers, strings, etc. May be complex to use. Standard C library is called libc
Arrays and Structs and Pointers, Oh My! Programming in C Input and output Using printf Standard input and output Pointers Arrays Structures Combining these things together Arrays and Structs and Pointers,
Process definition Concurrency Process status Process attributes PROCESES 1.3
Process Management Outline Main concepts Basic services for process management (Linux based) Inter process communications: Linux Signals and synchronization Internal process management Basic data structures:
Basic Common Unix commands: Change to directory d
Basic Common Unix commands: cd d Change to directory d mkdir d rmdir d mv f1 [f2...] d mv d1 d2 ls [d] [f...] ls -1 [f...] vi [f] emacs [f] more f cp f1 f2 mv f1 f2 rm f gcc [-o f1] f2 gnuplot Create new
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
Linux Kernel Networking. Raoul Rivas
Linux Kernel Networking Raoul Rivas Kernel vs Application Programming No memory protection Memory Protection We share memory with devices, scheduler Sometimes no preemption Can hog the CPU Segmentation
MIT Aurangabad FE Computer Engineering
MIT Aurangabad FE Computer Engineering Unit 1: Introduction to C 1. The symbol # is called a. Header file c. include b. Preprocessor d. semicolon 2. The size of integer number is limited to a. -32768 to
6.087 Lecture 5 January 15, 2010
6.087 Lecture 5 January 15, 2010 Review Pointers and Memory Addresses Physical and Virtual Memory Addressing and Indirection Functions with Multiple Outputs Arrays and Pointer Arithmetic Strings String
Advanced Systems Programming
Advanced Systems Programming Introduction to C++ Martin Küttler September 23, 2016 1 / 21 About this presentation 2 / 21 About this presentation This presentation is not about learning to program 2 / 21
Output: 12 18 30 72 90 87. struct treenode{ int data; struct treenode *left, *right; } struct treenode *tree_ptr;
50 20 70 10 30 69 90 14 35 68 85 98 16 22 60 34 (c) Execute the algorithm shown below using the tree shown above. Show the exact output produced by the algorithm. Assume that the initial call is: prob3(root)
Programming languages C
INTERNATIONAL STANDARD ISO/IEC 9899:1999 TECHNICAL CORRIGENDUM 2 Published 2004-11-15 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ ORGANISATION INTERNATIONALE
Arrays. Arrays, Argument Passing, Promotion, Demotion
Arrays Arrays, Argument Passing, Promotion, Demotion Review Introduction to C C History Compiling C Identifiers Variables Declaration, Definition, Initialization Variable Types Logical Operators Control
CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16
CSI 333 Lecture 2 Introduction to C: Part I 2 1 / 16 Basics of C Remark: Skim Chapters 1 through 6 of Deitel & Deitel. You will notice the following: C is (more or less) a subset of Java. (So, you are
Parallelization: Binary Tree Traversal
By Aaron Weeden and Patrick Royal Shodor Education Foundation, Inc. August 2012 Introduction: According to Moore s law, the number of transistors on a computer chip doubles roughly every two years. First
Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11
Dalhousie University CSCI 2132 Software Development Winter 2015 Lab 7, March 11 In this lab, you will first learn how to use pointers to print memory addresses of variables. After that, you will learn
1 Posix API vs Windows API
1 Posix API vs Windows API 1.1 File I/O Using the Posix API, to open a file, you use open(filename, flags, more optional flags). If the O CREAT flag is passed, the file will be created if it doesnt exist.
A Survey of Parallel Processing in Linux
A Survey of Parallel Processing in Linux Kojiro Akasaka Computer Science Department San Jose State University San Jose, CA 95192 408 924 1000 kojiro.akasaka@sjsu.edu ABSTRACT Any kernel with parallel processing
Standard C Input/Output. Output: printf() Table of Contents
Standard C Input/Output 1 Output: printf() 2 Table of Contents Output: printf( ) - syntax & sematics Output: printf( ) - examples Output: printf( ) - format control Screen / Printer Control Input: scanf(
Mouse Drivers. Alan Cox. alan@redhat.com
Mouse Drivers Alan Cox alan@redhat.com Mouse Drivers by Alan Cox Copyright 2000 by Alan Cox This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General
COMP 321: Introduction to Computer Systems
Assigned: 1/21/16, Due: 2/4/16, 11:55 PM Important: This project must be done individually. Be sure to carefully read the course policies for assignments (including the honor code policy) on the assignments
Outline of this lecture G52CON: Concepts of Concurrency
Outline of this lecture G52CON: Concepts of Concurrency Lecture 10 Synchronisation in Java Natasha Alechina School of Computer Science nza@cs.nott.ac.uk mutual exclusion in Java condition synchronisation
Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm
Project No. 2: Process Scheduling in Linux Submission due: April 28, 2014, 11:59pm PURPOSE Getting familiar with the Linux kernel source code. Understanding process scheduling and how different parameters
## Remove any existing rules -D
This file contains a sample audit configuration. Combined with the system events that are audited by default, this set of rules causes audit to generate records for the auditable events specified by the
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan