Programming :: Make A C App Do Multiple Tasks Simultaneously?
Oct 22, 2010
I have been working on a project for a while now that involves a rather complex daemon that has to be simultaneously running different tasks. For example one of these tasks is to receive IP packets from the Netfilter queue and place those packets into one of several internal queues. While other tasks involve taking IP packets from those internal queues and processing/manipulating them and finally returning them back to the Linux network stack.
As I as I have no previous C experience before starting this project I just spawned a new thread each time I needed the daemon to be doing something else while those other tasks continued to run. Is there any other way of doing this or is this pretty much the only way of doing this? Because C is procedural I could not figure out any other way of doing accomplishing what I wanted. Should I have done it some other way or is this the correct and only way I could have gotten my C app to be running multiple tasks at the same time?
View 6 Replies
ADVERTISEMENT
Apr 29, 2011
I have a script which basically does many tasks and most of them can run in parallel. The server it runs on has 4 cores, so I changed parts of it to a makefile, and then run them with "make -j 4" which helps a lot. But looking at "top" while it runs, I see it could be improved. Sometimes tasks wait for other servers, so a higher -j value would help. And sometimes multiple tasks are waiting on the same disk, then I think a lower -j value would be better.
The kernel is fairly good at sharing CPU time among the cores, but resources like memory and disks are not shared very well. As an experiment, I tried compiling the kernel with "make -j" with no number. It didn't go very well.
So I wondered if anybody know of a better tool for things like this. I think it should be possible to write something that could change the -j value while it runs.For example:
- Start as many tasks in the background as there are cores. When tasks finish, start another one until done.
- After a little while, check CPU and memory usage to decide if more tasks could run in parallel. Or maybe less?
- If different tasks iowait a lot, check if they wait on the same disk. If so, renice/ionice/suspend some of them. In these situations I think it's better to have them run one after another.
- Other ideas?
I thought of making a script like that, but I doubt I'm the first one with that problem. Also, there are probably lots of things I haven't thought of.
View 5 Replies
View Related
Jul 15, 2010
I installed 4 encrypted partitions (/, /var, /tmp, and swap) that are mounted at boot using the Alternate Installation Disc, and they all have the same password, but I have to type that password in 4 times when booting up. How do I make it so I only need to type in my password once?
View 1 Replies
View Related
Feb 2, 2011
I want to have an if statement that does multiple things:
Code:
if [....] ; then
1=...
2=...
[code]....
View 3 Replies
View Related
Apr 21, 2010
(i) I usually make multiple dir using -p optionex: mkdir -p dicttest/audrep/tdriver/testNow after creating this dir's i stay in current dir instead i want to go directly to test dir how can i acheive this.(ii) When i execute which command as followswhich testerm i will get the location of testterm now i want to open this filewhen i did in this wayhich testterm | vi The file dosent get opened how can i acheive this ?ex:
linuxx86:110$ which testterm
/view/rdl110_linuxx86/vobs_usrrdl/sc/testterm
linuxx86:110$ which testterm| vi
[code]....
View 3 Replies
View Related
Nov 11, 2010
I recently purchased a set of three professional mics and converters for them (they are XLR mics, so i bought three icicles to convert into the USB port)The computer sees all three microphones, but I can figure out how to be able to record on all three at the same time.Is this at all possible, or did I just waste a ton of money on converters?EDIT: I would like to add that these mics are identical, and I'm wondering if nothing else if it's possible to merge the two mount points so that it appears as one micEDIT AGAIN: I have also just installed Pulse Audio Volume Control, and it picks up both mics. How can i tell audacity to use this?
View 1 Replies
View Related
Apr 12, 2011
I have a problem in making multiple calls using PJSIP. I registered different accounts that implements IAccount and added that in the CallManager. When i try to make the calls from the same CallManager, I could able to make the first call. When second call is made the first call got cut and it is alerting and the same for the thrid call..Could anyone help me in this regard.
Note: Calls has to be made from different numbers to different destinations. Is it possible to make multiple outbound calls simultaneously from the same instance of CallManager?
View 1 Replies
View Related
Jul 8, 2011
Performing commands in multiple subdirectories simultaneously. I'd like to run a program I've copied into every subdirectory which takes *.in files in the current directory as input files. I can find the program, but how do I tell it to run when I've found it?
View 1 Replies
View Related
Sep 21, 2010
I'm trying to write a bash script that will simultaneously ping a host and execute a traceroute at the same time. I would like the results to output to a text file.
View 6 Replies
View Related
Apr 27, 2011
I have a list of approximately 50 words that I'd like to search documents for and delete those words. I was wondering if there is some type of automated process for removing multiple words rather than me manually putting each word into 'find and replace'
On that note I guess I could write the Macro in python if there isn't anything out there that does this. However I read that open office only works with python 2.3.5 or something of that nature, and I have already installed 3.1. Is that still going to be an issue?
View 2 Replies
View Related
Sep 14, 2010
i'd like to execute in several subdirectories that all have the same name, but I don't want to have to change into each subdirectory (there are hundreds) to execute the script. All the subdirectories have the same name ("final_alignments"), but are located in parent directories with different names. All these parent directories are in the same "super parent" directory. I've tried to do this using "for/do" and "find" but no luck so far.
View 8 Replies
View Related
Dec 18, 2010
I installed 2 nic cards in my pentium 4 computer running rhel5 to be used as a proxy server and connect 2 computers in each network card for testing . The problem is I cannot ping or use the 2 cards simultaneously . One must be deactivated for the other to be ping . The Network configuration panel indicate both card status as active but i can only ping the first to be activated . I have already set onboot=yes to both cards but still the same result after restarting . The nic cards are onboard - Realtek RTL8139 and pci -3com 3c905b.
View 4 Replies
View Related
Oct 5, 2010
Here's the setup: One x86 server (Red Hat 4) with two serial connections to an embedded linux device. One serial connection is to a power control so the device can the restarted, and the other is used for a console to this device. Both serial connections use minicom. People on my team VNC to the x86 server, where they find the two minicom sessions waiting for them as they are left open. I would like to automate connecting to the server and communicating over the serial lines.
Supposing I use ssh to the x86 server, could minicom be used over the serial lines without terminating the minicom processes seen through VNC? If not, is there a way to re-open those windows from within the ssh session, so a user who VNCs to the server won't have to reopen them? Could a single ssh connection control two minicom terminals simultaneously, or would there need to be two ssh connections? It is assumed a user and the automated process will *not* try to access the device at the same time; the automation would trigger during off hours.
View 2 Replies
View Related
Mar 11, 2010
Is it possible to make an AWK script that goes over the file multiple times, every time doing something different to it?
View 19 Replies
View Related
Aug 22, 2011
I am looking for software (Windows or Linux) that can do the following: Resize one image to several provided sizes. Detects the type of the picture (wide, normal) and does the resize based on that. What I mean by that is that it should not break the image by shrinking it more in one direction then in the other so it looks weird. The purpose of this is my Blog. If I want to give my readers a wallpaper, I want to give them several options for the sizes so they can have it in their own preferred screen resolution. The image must however keep its original aspect ratio.
View 2 Replies
View Related
Aug 5, 2010
i want to copy one or more files or directory from one drive to multiple drive simultaneously. It like a cloning a disk. But i dont like clone entire disk. i want to copy/clone only certine files or folder. if any one can know how to copy one source to multiple destination simultaneously.
View 3 Replies
View Related
Sep 21, 2010
Okay so I have an alias that looks like this:
Code:
ALIAS sorigin {
MSG sorigin Test1
[code]...
View 1 Replies
View Related
Sep 12, 2010
I started a new x session on tty8. This is display 1. The first session is tty7 display 0.
I can switch between them easily enough. CTRL ALT F7 goes to tty7. CTRL ALT F8 goes to tty8.
But if I try to run, say, the "import" command for screenshots on tty8, while switched to tty7, all it gives is a black screen.
The reason being, I think, because only one session is actually outputting at any given time. How do I make both of them output, so I can take a screenshot on 1 session, but use the other session to do other stuff?
View 2 Replies
View Related
Jun 9, 2011
Is it possible to output one playback stream to multiple devices simultaneously with the current PulseAudio / Phonon setup? The PulseAudio mixer only has radio buttons to choose one device per playback stream. I believe the hardware is capable of this, since I remember doing that before we had PulseAudio. How can I duplicate an audio stream?
Here's one application scenario: I am travelling with my family, all crammed in small hotel room. My wife and me want to watch a movie on my laptop without waking up our kids. I just happen to have one analogue headphone available and one wireless USB headset with me. (Of course, the low tech solution is to bring an 3,5mm Y-cable to attach two analogue headsets, but I would really love to use the USB headset together with the analogue one.)
Another similar thing that bugs me is that my laptop's built-in speakers now always seem dead when an analogue headphone is plugged in. This is mostly what one wants, and before PulseAudio, one had to manually switch them off which was generally annoying. However, the downside is for example with notifications.
For example, before PulseAudio, I could configure Skype to always ring over the laptop's built-in speakers, regardless of whether the analogue headphones were plugged in. This is no longer possible, since PulseAudio does not distinguish between built-in speakers and built-in analogue port any more, while old Alsa did. So in my office, where some analogue headphones are plugged into the docking station, I never hear Skype ringing if I don't wear the headphones.
View 9 Replies
View Related
Feb 20, 2011
According to Wikipedia's PHP page, PHP "is a general-purpose scripting language". Does that include being suitable for duplicate files detection? More specifically, the task is collating files from workstation backups into a single place, preserving directory paths and replacing duplicates with hard links. This will be a regular task on a lot of files so performance is important; our current proof-of-concept solution uses a PostgreSQL database of file "fingerprints" to speed duplicate detection. Does PHP have PostgreSQL integration?
I am asking these questions as a follow-up on an earlier thread asking for programming language recommendations for this task. Since then I have learned that PHP skills are available locally.
View 8 Replies
View Related
Apr 27, 2011
Is it possible to simultaneously execute all perl scripts within a folder? How?
View 1 Replies
View Related
Sep 15, 2010
I want to gave much details as possible. working directory (~/a1/shell) in the shell directory i have Makefile. also in the shell directory i have subdirectory's (obj, src, include)
My current Makefile
Quote:
#What needs to be built to make all files and dependencies
clean:
# End of Makefile
I wanted it so: all .o files are created in the obj subdirectory, and my application, sshell, is created in the shell directory.
I am getting this error when i run the make run: No rule to make target 'shell.h', needed by 'shutil.o'. stop
View 1 Replies
View Related
Jun 24, 2009
I've browsed the internet, but haven't found a satisfying answer. Hope this forum can help me in the right direction.I'm exploring the possibilities of creating a program that manipulates (writes to) two different video cards.I program in C and hope to avoid high level libraries like Xlib to keep the mem footprint as low and the performance as high as possible. Windowing is not important no desktop environment will be used. Be able to write two pixels (one to each screen) to would do.
How would I go about?To give an idea of the solution I'm looking for:One screen will show thumbnails of images on the hard drive. Clicking an thumbnail on display A will show the selection full screen on display B. On a laptop; preferably thumbnails on the laptop screen and the selected image on the external monitor.Is this possible with just low-level libs or do I need X or some third-party software to make life easy?
View 14 Replies
View Related
Feb 6, 2010
I used to use nvidia and Twinview to drive an LCD and CRT monitor as one big area. I've changed over to using the nv driver, and I gather that xinerama is deprecated now in favour of xrandr. But I can't get xrandr to even report anything about my two displays, and can't get any picture on the CRT. This is despite both being fully detected by X (according to the log file).
I've just changed over from using the nvidia driver to the nv driver. I did this because I discovered that the frequent system crashes while watching video was caused by the nvidia driver, partly because my card is a GeForce FX 5200, not supported by the current nvidia driver which contains bug fixes for the problem. So I've used Synaptic to remove all the nvidia drivers and add-ons, and installed nv and the libgl1-mesa-dri and libgl1-mesa-glx drivers.
I moved my old xorg.conf file aside and on a second X display ran X :1 -configure to generate a clean new xorg.conf and started from there. I'm doing all these experiments by modifying xorg.conf, and then on a second console running up X on display :1 to try it out. Another odd thing: xrandr doesn't report any "outputs" (since I'm using the nv driver, I'd expect to see DVI0 and VGA1), instead it just reports this:
Code:
# xrandr
Screen 0: minimum 640 x 200, current 2560 x 1024, maximum 2560 x 1024
default connected 2560x1024+0+0 0mm x 0mm
[code]....
View 5 Replies
View Related
Sep 20, 2010
Make multiple text files into .lst wordlists?
View 7 Replies
View Related
Jan 27, 2010
Newbie question here. I just realized that I can tell make to use multiple cores to compile by doing PHP Code:makewhich is just awesome on a quad core with hyperthreading (I just compiled 2.6.33-rc5 in under 5 minutes!) I know aliases are possible, though I've never had much need. What I would like to know now, is if it would be safe to alias make to mean PHP Code:so that by default I use 6 of the procesors when building or if there would be occasions that compiling on multiple processors would be a bad thing
View 10 Replies
View Related
Jan 11, 2010
I am curious of how to make a GUI interface that uses multiple programs and commands. I have found wxwidgets as the most likely candidate for making my own interface.Is this the best programming language for a beginner?
View 3 Replies
View Related
Aug 4, 2010
Normally when a program is open an entry is placed on the taskbar in order to easily find it, which is useful when a lot of programs are open. In Ubuntu 10.04, when I moved a program to the other monitor (I'm using 2 monitors) the taskbar entry also moves to the taskbar on that monitor.
Now I switched over to Ultimate Edition, which is Ubuntu 10.04 with a lot of stuff added to it. When I drag a program to the other monitor, the entry in the taskbar disappears, but it does not reappear in the taskbar of the other monitor. So now the only way for me to find a program on this monitor if its hidden behind other windows is to use alt-tab.
View 2 Replies
View Related
Apr 17, 2009
I use a mencoder line to convert .avi to .mpg (dvd player compatible), it works well but i can only do one file at the time. It requires giving the input and output directories and the files name. I tried using (*.avi *.mpg in the command) on the directory but it just add up all the .avi and convert them into one huge .mpg. My goal is to have a script that would convert all the .avi files from a directory to the same amount of .mpg and also keep the naming of those files. Here is what i work with on single files:
Code:
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,harddup
-srate 48000 -af lavcresample=48000
-lavcopts
[code]....
View 3 Replies
View Related
Nov 12, 2010
I feel kind of embarrassed posting here, but this is technically a scripting sub-forum. Here is the problem. I have a folder with various files which include .txt files as well
How can i redirect same content to each of the .txt files in the folder?
I have tried
Code: $ echo "hello" > *.txt
-bash: !": event not found Code: also cat ~/otherdir/test.txt > *.txt
-bash: *.txt: ambiguous redirect Can anyone help me with this?Ok i solved it
Code: #! /bin/bash
for file in *.txt
do
echo "Text that needs to be written" > $file
done
View 2 Replies
View Related