More On Shared Memory Problem
Ken Staggers
staggers at casbah.acns.nwu.edu
Thu Jun 6 14:57:38 AEST 1991
Here's a little bit more detail on the program..note that I have changed
the name of create() to pcbcreate() as a net suggestion, but it didnt
help. Exec-ing is not a problem since its not one of processes that is
having trouble, its the main program.
main()
Create shared memory
Access shared memory
Attach shared memory
Initialize shared memory
memorydump()
execution()
execution()
Access shared memory
Attach shared memory
if (fork()== Parent) /* Start process1 */
pcbcreate()
else /* fork= child */
kill( childpid, SIGSTOP); /* Dont run, halt self, let me schedule you */
execl()
if (fork()== Parent) /* start process 2 */
pcbcreate()
else /* fork= child */
kill( childpid, SIGSTOP); /* Dont run, halt self, let me schedule you */
execl()
if (fork()== Parent) /* start process 3 */
pcbcreate()
else /* fork= child */
kill( childpid, SIGSTOP); /* Dont run, halt self, let me schedule you */
execl()
if (fork()== Parent) /* start process 4 */
pcbcreate()
else /* fork= child */
kill( childpid, SIGSTOP); /* Dont run, halt self, let me schedule you */
execl()
pcbcreate()
Access shared memory
Attach shared memory <---- This is where the "TOO MANY FILES OPEN" error
occurs.
memorydump()
Access shared memory
Attach shared memory
print out contents of all shared memory
main() is in p1.c
execution() is in execution.c
pcbcreate() and memorydump() are in syscall.c
I found out that the exec does detach, but since my running processes 1-4
right now are just counting loop, printing out a message every 100000 counts,
they, internally, dont access shared memory.
I issue no file open commands...if I issue a createsem(), a function is syscall
which initializes a semaphore and stores a string inside it, after memorydump()
but before execution() in main(), then createsem() generates the same error,
too many files open.
Any hints or suggestions would be appreciated. thanks in advance.
--Ken
p.s. this is on an encore multimax using 4.3 BSD (UMAX)
More information about the Comp.unix.questions
mailing list