You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ialloc new inode
create file table entry for reader, writer point to inode
create descripter for reader, writer, point to file table entry
set inode reference count = 2
return reader,writer
2) msgsnd(msg_descriptor, msg, count, flag):bytes sent
check permissions
while no space :
if no wait flag:
return
sleep
get a header
copy data from user space to kernel
modify ds:
add header to queue
header points data
timestamps
pid
wake all process
check permission
loop:
if type == 0:
select first message
if type>0:
select first message with given type
if type<0:
select message less than abs(type)
if theres a message:
adjust message size
if too small error
copy text from kernel to user
unlink message from queue
return