Unix kernel question

Unix kernel question

Post by Jim Perreau » Wed, 09 Mar 1994 00:22:44

I have, IMO, a fairly complicated kernel question.  But first, a little
background on why I am asking it.

I am a teaching assistant for a Sparc Architecture/operating system class,
and the other day the teacher said something in class that I am not sure is
accurate.  So I am posting to this newsgroup to double verify his

The teacher said that the multitasking in Unix is independent of whether or
not the process is in the user or system state.

Looking at it now, it is a fairly vague statement.  But it implies that a
process can be swapped out ( by the task schedular ) to another user
process.  Is this correct ?

Putting the question another way, when can a process be swapped out when it
is in a system call ?   I am refering to regular Unices such as 4.3 BSD and
not any of the Real-Time Unices.

                                                Thanx in advance,

                                                        Jim Perreault


1. Six general Unix kernel questions

I have six general questions:

        1) Under Unix SVr3.1, /usr/include/ino.h contains the structure
dinode, which the comments say contains a layout of each disk inode.  I
suppose the file /usr/include/inode.h contains a copy of the in-core
inode structure( named inode).  However, the in-core structure does not
have the field with the 13 disk block addresses.  Why is this?  Does the
kernel go the the disk copy of the inode each time to get these, or am I

        2) In Back's book, on pages 157 and 158, it is suggested that
there are three main kernel virtual and three user virtual translation
tables.  I assume he chose three as just an example, and that the real
virtual tables contain many entries, and that there isn't such a great
distinction between kernel and user address tables.  Am I correct?

        3) On my 386 running Unix SVr3.1, if it go into crash and type
"pdt -s13 0" or "pdt -s13 1", I get different outputs.  What does the 0
and 1 mean?  Other numbers illict a "Page table not in core" message.

        4) Bach seems to suggest that a block containing free block
addresses is the same size as the superblock's free block list.  I
believe that blocks contain more blocks than the superblocks free block
can handle, and the first double word in the free block address block
contains the number of valid free block addresses in the block.  Am I
correct in this?

        5) Is there a System V utility that allows for examination of a
file system's super block in an orderly format, like the display for
inodes in fsdb?

        6) Why is there a separate 'creat' and an 'open' system call, if
'creat' is just an 'open' with flags?  

Thanks for reading this.  I am on page 158 of Bach's book, and these are
the questions I have so far.  It's nice to have someone to ask these
questions to.

Bruce Momjian           | 830 Blythe Avenue               | home: (215)853-3000

2. access via win95

3. Ft. Worth - Linux Kernel Module Programmer - Unix kernel modules & Unix device drivers

4. help with error message: directive parameters too long

5. comp.unix.questions comp.unix.misc comp.unix.sys5.r3

6. AT&T

7. kernel/unix question

8. Anonymous FTP setup problem (ls command)

9. Question on Digital Unix 4.0 compatibility with 2.0.x kernels

10. Question on modifying Unix kernel

11. Question about uiomove() in BSD Unix kernel

12. How to copy unix kernel to unix.backup

13. help:how to replace new unix kernel with unix.old?