Programming :: Pthread Mapping From Compiler To Kernel?

Aug 20, 2010

I'm trying to figure out how pthreads are mapped from the compiler to the Linux kernel. The pthread prototypes are found in a compiler header file (pthread.h), yet the kernel would be responsible for scheduling the threads. So, how does the compiler resolve the pthread symbols at compile time?

View 1 Replies


ADVERTISEMENT

General :: 1:1 - What's Meant By There Is Kernel Level Thread For Each Pthread Created

Mar 11, 2011

I have gone thorugh some documents about pthread (NTPL ) in linux 2.6 kernel. As per that linux uses 1: 1 threading model and for each user level thread there is kernel level thread. Pthread_create uses clone system call to create a LWP and the kernel could treat that as a LWP and do scheduling and all .( different from linuxthread). My question is what's meant by there is kernel level thread for each pthread created. Can I see the kernel level thread if I call pthread_create using ps .

What exactly meant by 1:1 .I mean for each user level thread there is kernel level thread . If I make a system call from a thread does the OS services that action via kernel thread ( created using kernel_thread () or some other way ) internally ..

View 1 Replies View Related

Programming :: Remote Function With Pthread?

May 22, 2010

I wrote some code in c, using pthread (I configured the linker and compiler in eclipse IDE first).

Code: #include <pthread.h>
#include "starter.h"
#include "UI.h"
Page* MM;

[Code]....

View 6 Replies View Related

Programming :: Pthread Not Release Memory

Jan 1, 2011

I have faced a problem with my code (a small tcp server). After the thread returns, the memory not decreases, but when a new connection is made, memory not increases and the new connection initialize a new thread with a same thread id of the previous thread. When two connections are made at same time, two thread ids are created and when the respective threads returns the memory not decreases. The Valgrind indicates that not memory leak occurs, the pointers are released. Indeed, more memory are allocate when new thread id is created. i used gcc and debian.

[Code]....

View 1 Replies View Related

Programming :: Signal Handling In Pthread?

Mar 12, 2011

I have created a pthread, and installed a signal handler inside that, same way as we do in main( ) function. The thread's signal handler is a separate function. Surprisingly, it is not working, that is the thread's signal handler is not able to catch signals. Here is the code:

Code: #include <unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <signal.h>
typedef struct data

[Code]...

View 1 Replies View Related

Programming :: Pthread Memory Not Being Freed?

Apr 19, 2010

I have an application that has pretty large memory profile. The general program flow is as follows:

Code:
main:
do 10 times:

[code]....

View 9 Replies View Related

Programming :: Portable Pthread Library Out Of 10 Distros?

Mar 10, 2011

im writing a cross-platform software (linux/solaris/mac/bsd) so i was wondering, how portable is pthread library? out of 10 linux distros, how many will have it by default? and does it exists on mac/solaris/bsd by default? or user will have to install it?

View 6 Replies View Related

Programming :: Suspend/resume A Thread When Using Pthread.h?

Dec 14, 2010

I want to suspend/resume a thread. The library I am using is pthread.h.I am also running my application on linux.Is there any function in pthread. let me suspend a thread temporary?I have read a document in which it was mentioned thatthread does not support suspend/resume

View 4 Replies View Related

Programming :: Pthread And Mutex With Short Unlock Time?

Jun 15, 2010

I am wondering if pthread could make that a single thread keeps the "mutex" all the time if the time it remains unlocked is very small.

thread1
{
while (1)
{
lock; do_task(); unlock();

[code]...

I experiment the thread2 never getting access to the mutex and never printing the nice message. I would expect that once thread2 calls "lock", it would get the mutex as soon as thread1 calls unlock() but it does not seem to be the case. If I add a sleep of some microseconds (100) in thread1 after unlocking the mutex, it solves the problem.

Does anyone know if this behaviour is normal? Is there a way to configure my mutex so that thread2 receives it when unlocked?I use

pthread_mutexattr_settype(&att, PTHREAD_MUTEX_RECURSIVE_NP);
pthread_mutex_init(&handle, &att);

to create my mutex. I am running ubuntu 9.04

View 3 Replies View Related

Programming :: Use Pthread Scheduling Policy Without Root User?

Jan 12, 2011

I am working on a large program in C to run on Puppy Linux. I have multiple pthreads running. I want to be able to set the pthread SCHED_POLICY and priority in my program but I want a user to be able to run the program without root privilege.
Using a sticky bit and root ownership gives the user too much power because they will be able to write and compile their own scripts. Is there a way to use 'sudo' when I set the thread parameters from my program or something like this?

View 1 Replies View Related

Programming :: Pthread - Optimize Computing Function / Loop With Threads?

Sep 4, 2010

I have to compute prime numbers with threads in C. So I choose the algorithm "Sieve of Eratosthenes" and I tried to create 2 threads, but I don't know how to optimize my computing function with threads I beg for help. This is my function:

[Code]...

but it seems like the both of the threads are calculating the same function twice? Is it possible to be optimized or not?

View 7 Replies View Related

Programming :: Socket Server Using Pthread Doesn't Wait For Accept() Properly?

Apr 19, 2010

I'm building a simple(?) socket server using threads to serve up a few requests. The spec is such that I have to listen to three ports at once, so I decided to use pthread to create three separate threads that would wait for connections, then spawn new threads to handle them.

The problem is that when I do this, for some reason the program never enters the wait loop and instead terminates (All three threads did get created since the messages get printed properly.) It gets to the line which prints "???", but not the line after the accept() call.I don't see an open port when I check for one either so I'm 99% sure they're terminating.Basically I have a main() method which has three calls to pthread_create, which should result in three threads being run that all wait for connections (listenOnPort). After each thread creation I print some info to make sure it's actually being created.

By the way, when I just run listenOnPortwithout threading, the server appears to enter the loop correctly and seems to be waiting for requests. It's only when I run the functions as threads that the problem seems to happen.The source is attached below. Any help will be appreciated. Much of the code is borrowed from a website (I can't post it because I am new here.) You need not worry about the handler_ methods because those are just methods that are run by the threads themselves.

Also--the original source was in C and I changed it to C++. Should I just use C?
server.h Code: /*
* server.h

[code]....

View 1 Replies View Related

Programming :: Rules To Set The Pthread Stack Size - Compute The Memory Needed By Each Thread?

Jul 26, 2010

i have an application that launches several pthreads, i know that the default size used by Linux is 8Mb for each pthread. However i would like to optimize the total memory usage by my application by decreasing the default stack size of each pthread to the needed resources. My questions:

- Are there any rules to set the pthread stack size.
- How to compute the memory needed by each thread.
- Is the malloc call inside a thread counted from the stack size of the same pthread?

View 2 Replies View Related

Programming :: Pthread - Take String From The Command Line And Creates A Thread To Print The String

May 3, 2011

I've been trying to understand pthread in C a little better. So I made a simple program that takes in a string from the command line and creates a thread to print the string. I've looked online and copied the basic concepts but there are something things I'm confused about. The programs works just fine, but I have questions. Here's what I have so far.

[Code]....

One thing I'd like to know is why the 3rd argument in the pthread_create function which is my SendMessage function needs to be typecasted to a void pointer and then send the address of the function. Also as for the 4th argument, I would see typecasting to void pointer in some of the pthread examples I saw online, but in my case I'm passing a char pointer, would this be correct? In which case would I ever want to pass a void pointer?

Do I need a pthread_exit(NULL) in my main and in the SendMessage function? If so, why? I added the sleep() function so that I could let the pthread_exit function in my SendMessage function execute first. I simply saw that the online examples on pthread had pthread_exit() in both locations.

View 6 Replies View Related

Slackware :: Lazy Kernel Compiler Hits Snag?

Feb 22, 2010

I haven't recompiled ny kernel in a while, but whenever I did it, it was all pretty easy. Make menuconfig; (adjust); make && make modules_install, and copy over bzImage in */arch/* and System.map to /boot and stick in new entry into grub menu.lst.However, this time, I must be missing something, because I get kernel panic on booting up to the new kernel. Is there a step I'm missing?Certainly, I was looking in /etc/rc.d and there is a rc.modules<kernelver> script in there. I wondered if I need make a new one ... although when I looked over it, it seem only to be required when forcing particular modules.

View 14 Replies View Related

General :: Mapping Kernel Virtual Address Space To Physical Memory Zones?

Nov 4, 2010

As i undertsand - out of 1GB of the virtual Address space for Kernel from 3GB to 4GB of the process address space, Kernel image (code, data, bss, stack, heap) resides staring @0x0 address. Vmalloc area starts either at the end of Physical ram size or at 896M. This 896M cap is mandated to ensure that minimum of 128MB is reserved as vmalloc_reserve for vmalloc,kmap etc.

Is the understanding correct? Now trying to map Physical Zones into this 1GB address space

Initial 16MB is mapped to ZONE_DMA
16MB - 896MB is mapped to ZONE_NORMAL
896MB - 1024MB is mapped to ZONE_HIGHMEM

Does this mean that Kernel image is residing in ZONE_DMA area? Any call to vmalloc() in kernel code will return address beyond 896M? insmod of any LKM will internally invoke vmalloc() to obtain contiguous area - where will this code physically located along with rest of kernel code in ZONE_DMA or in ZONE_HIGHMEM?

View 1 Replies View Related

Debian :: NVidia Driver Install - GCC Kernel Not Matching Current Compiler

Aug 4, 2010

I am fairly new to Linux. My machine is running Debian 5.0.5 with gcc version 4.3. When I try to install the Nvidia QuadroFX 3450 driver I got from the Nvidia web site I get an error saying:
"The compiler used to compile the kernel (gcc 4.1) does not exactly match the current compiler (gcc 4.3)....."
Does this mean my gcc version is too new for the driver? if so, how do I roll back to a older version?

View 8 Replies View Related

Programming :: Shared Objects - Mapping And Linking?

Oct 28, 2010

I have a question about shared objects and when mapping and linking is established in the following code...Well more of a verification.

getsetx.c - shared object source code Code: unsigned long x = 0;

unsigned long getx(void)
{
return x;
}
[Code].....

Now its my understanding when I execute ./testit, getsetx.so will get mapped into its address space at start up and testit will link any functions as they are needed..

View 3 Replies View Related

Programming :: C++ Compiler For OS Using Fedora?

Jul 13, 2011

I installed Fedora on my machine. I'm very new at Linux but would like to start coding in C++. I would like to know the steps to write and compile a Hello World program using C++ in Linux. (I've been a Microsoft person all my life).

View 4 Replies View Related

Programming :: No Output On C Using Gcc Compiler?

Jun 8, 2010

I am trying to learn C Programing and I'm having trouble on the output of my script. my script should count the characters in input but it doesn't give me any numbers..
here's my program code:

Code:

#include <stdio.h>
main()
{
double nc;

[code]....

View 14 Replies View Related

Programming :: Mapping Browser Mouse-click To Character Beneath It?

Jun 29, 2011

How does one, in portable JavaScript, map a particular mouse-click, (x,y), to the character within the DOM element that is underneath it?

View 1 Replies View Related

Programming :: Compile Package C++ With GNU Compiler ?

May 26, 2010

compile package C++ with GNU compiler under Linux, I can share my program's

View 3 Replies View Related

Programming :: Re-mapping Stdio For A Fork'd/exec'd Executable Doesn't Seem To Behave

Jan 27, 2011

I have a monitoring program ( GIT link to sourceforge ) which I'm trying to use to track when a child exits/dies/whatever. I'm calling fork(), then close for 0,1,2, and then opening /dev/null, monitored.stdout, and monitored.stderr as a replacement. I'm not sure if I've done something incorrect (perhaps I should use dup2 for explicit assignment?) but it appears that printf() messages are just being blackholed. I've tried setting the line buffering as a last ditch effort. On a different system, using code similar to the spawn_monitor() function, this appears to work fine, which makes me think I'm relying on some implementation specific detail.

Relevant function, for those who don't click links:

Code:

26 int spawn_monitored(char *argv[])
27 {
28 int exit = 0;
29 pid_t child;
30 const struct rlimit inf = {

[code].....

View 14 Replies View Related

Programming :: Linker Error Using Cross Compiler

Aug 11, 2010

I am using a arm compiler to build my program but getting following compiler error at the end -
init.c.text+0x2c): undefined reference to '__libc_csu_fini'
init.c.text+0x34): undefined reference to '__libc_csu_init'

View 1 Replies View Related

Programming :: C++ Compiler(G++) Comes Up With Error When Try To Compile A Program Using Qt

May 26, 2010

I am using the C++ compiler G++ to compile my programs on Linux Mint 8 - Gnome.

I recently installed QT and when I tried to compile a simple "Hello World!" program it gave me this error:

Quote:

This is the code in HelloWorldQt.cpp:

Code:

I have tried using GTK instead but I get a similar error.

View 7 Replies View Related

Programming :: Fexec-charset For Preprocessor Or For C Compiler?

Dec 24, 2010

I'm reading about GNU CPP(GNU C preprocessor). In the CPP manual -> 1.1 Character sets:

Code:
After preprocessing is complete, string and character constants are converted again, into the execution character set. This character set is under control of the user; the default is UTF-8, matching the source character set. I think "under control of the user" means to use the option -fexec-charset=, right? And in the above part, it says pretty clear: "After preprocessing is complete", so the job -- "string and character constants are converted again, into the execution character set" -- should be done by the C compiler(compilation proper), not GNU CPP. Then the option -fexec-charset= should be an option controlling the C compiler, not the preprocessor. But in the GCC manual, this option is listed in the "3.11 Options Controlling the Preprocessor". I don't understand this, If this option is an option controlling the preprocessor, it conflicts with the CPP manual. How to understand this?

View 4 Replies View Related

Programming :: How To Force Scons To Use Cross Compiler

Feb 3, 2010

I have a large existing codebase that all compiles under Ubuntu 8.04 with g++ using Scons. I've been given the task of getting it to compile for Arm9 running uclinux. I have a arm-elf-g++ compiler that I need to use instead of the gcc version. I ended up borking my /usr/lib/scons/SCons/Tool/g++.py file to use arm-elf-g++ instead of g++, but I know that this is not correct, as I have to go edit that file every time I change compilers.

These are the 2 lines I switch out:
Code:
compilers = ['arm-elf-g++']
#compilers = ['g++']

I simply can not find anywhere in the scons documentation that indicates how to tell it to use a different compiler. It seems that it would go under "Environment" but beyond that I'm lost. The CPPPATH variable seems like it only tells scons where to find #include files. I suppose I could rename arm-elf-g++ to g++ and just set my path to find that one first, but that seems like a bit of a hack as well. It would also break other things on my machine.

View 3 Replies View Related

Programming :: Using Wherey() Of Turbo C Function In Gcc Compiler?

Apr 26, 2010

is there any way of using wherey() of turbo c function in gcc compiler like we have for gotoxy(), clrscr() functions.....

View 2 Replies View Related

General :: Gcc Compiler Is Not Compiling Old C Programming Files Because Of Timestamp?

Nov 20, 2010

I am using makefile to complile all C Programming files. But certain files are not getting compiled and hence its object file is not getting generated. This is happening due to files haven't been modified for a long time. It seems that compiler knows that its object file is there hence no need to complie it actually it is not.

View 14 Replies View Related

Programming :: Disable Structure Alignment Using Gcc Compiler Options?

Jan 25, 2010

How can I disable structure alignment feature of gcc using command-line options ?I recently migrated to 64-bit OS, and doubt that I might be experiencing a structure alignment problem due to the new 64-bit architecture.I checked the sizes of the same C-style struct in both x86 and x86_64, and found out that they appear to be different by 20 bytes.I am not sure if this is due to structure alignment or the differences in data type lengths between two platforms.Hence, I will first disable the structure alignment feature, and then check the struct sizes again.

View 3 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved