Purpose
The goal of this project is to become familiar with concurrent processing in Linux using shared memory.
Task
As Kim knew from her English courses, palindromes are phrases that read the same way right-to-left as they do left-to-right, when disregarding capitalization. Being the nerd she is, she likened that to her hobby of looking for palindromes on her vehicle odometer: 245542 (her old car), or 002200 (her new car).
Now, in her first job after completing her undergraduate program in Computer Science, Kim is once again working with Palindromes. As part of her work, she is exploring alternative security encoding algorithms based on the premise that the encoding strings are not palindromes. Her first task is to examine a large set of strings to identify those that are palindromes, so that they may be deleted from the list of potential encoding strings.
The strings consist of letters, (a, . . . , z, A, . . . Z), and numbers (0, . . . , 9). Ignore any punctuations and spaces. Kim has a one-dimensional array of pointers, mylist[], in which each element points to the start of a string (You can use string class of C++ if you so desire, but I think it will be easier to use C strings for this project). Each string terminates with the NULL character. Kim’s program is to examine each string and print out all strings that are palindromes in one file while the non-palindromes are written to another file.
Your job is obviously to write the code for Kim. The main program will read the list of palindromes from a file (one string per line) into shared memory and fork off processes. Each child will test the string at the index assigned to it and write the string into appropriate file, named [login to view URL] and nopalin.out. In addition, the processes will write into a log file (described below). You will have to use the code for multiple process ipc problem (Solution 4 in notes) to protect the critical resources – the two files.
Make sure you never have more than 20 processes in the system at any time, even if the program is invoked with n > 20. Add the pid of the child to the file as comment in the log file.
Hello,
Hope this message finds you well, I checked your details and I believe that my experience is what you are looking 4. I have been working on similar projects for the past eight years, and I have the essential skills including;
Engineering
C Programming
Linux
Computer Security
C++ Programming
UNIX
I will prove to be of great help to you. SEND MESSAGE/CHAT, so that discuss more on the details including budget and deadlines…
Please REMEMBER to; Wash your hands frequently, Maintain social distancing, Avoid touching eyes, nose and mouth..., Practice respiratory hygiene, Stay home and if you feel unwell seek medical care early.
Regards,
BrainCenter Inc
Hello,
I am expert in kernel programming specially linux kernel. I have in depth knowledge of linux kernel from memory subsystem(virtual memory), file subsystem(VFS[virtual file system], ext4) , process subsystem(interrupt, signal, ipc) to network(socket).
I am also having great experience in linux/Unix system programming. I have in depth knowledge of Multi-Threading, IPC(shared memory, message queue, semaphore), Thread Synchronization(mutex,condition variable), socket programming also.I have implemented file system kernel module on linux.
I am working on kernel/system programming and teaching the same from last 3 years. i can help you with this project.
Thanks,
Akshay Nikam