09-17-2009
Quote:
Originally Posted by
Krothos
So once the bytes are transferred stored over in the main memory through the DMA, how is what was read returned to the caller? So if I wanted to read 3 bytes from a file containing "Hello", how is "Hel" returned to the library function? What sees this and how/where is it returned from?
That's the whole purpose of a system call. Passing data from/to the kernel.
Quote:
That was what I was saying. I don't get the process of how write takes place in terms of a file let's say.
That's the picture but the process is quite more complex than your description.
There are several layers crossed by the data between your application and the disk blocks.
As you are talking about a file, the filesystem, file cache and possibly a log are playing a role. Writes are usually delayed so you will need to wait for a flush for the data to be committed on disk. Also, some form of software or hardware raid (mirroring/striping and the likes), checksums or compression might take place, the disk itself will certainly have a cache too.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I got the freebsd kernel source from the first install CD(in directory:\7.0-RELEASE\src\),isn't right? if so,how can i read it? Is there any tools? (4 Replies)
Discussion started by: zhouq3132
4 Replies
2. Shell Programming and Scripting
I need to find all the files that have group Read or Write permission or files that have user write permission.
This is what I have so far:
find . -exec ls -l {} \; | awk '/-...rw..w./ {print $1 " " $3 " " $4 " " $9}'
It shows me all files where group read = true, group write = true... (5 Replies)
Discussion started by: shunter63
5 Replies
3. UNIX for Dummies Questions & Answers
Ok, so I'm trying to finalize my understanding of read/write and kernel interaction.
read():
You have a library function that has as it's first parameter (what the open file to read from is), second parameter( a pointer to a buffer (is this the location of a buffer in the user area or the... (1 Reply)
Discussion started by: Krothos
1 Replies
4. IP Networking
Hi,
We have smb client running on two of the linux boxes and smb server on another linux system. During a backup operation which uses smb, read of a file was allowed while write to the same file was going on.Also simultaneous writes to the same file were allowed.Following are the settings in the... (1 Reply)
Discussion started by: swatidas11
1 Replies
5. Solaris
Hi gurus
Could anybody tell me which file is read by kernel to set its default system kernal parameters values in solaris. Here I am not taking about /etc/system file which is used to load kernal modules or to change any default system kernal parameter value
Is it /dev/kmem file or something... (1 Reply)
Discussion started by: girish.batra
1 Replies
6. Shell Programming and Scripting
im in a basic unix class and our professor speaks broken engliash so i can never understand what exactly we are doing in class and i have no prior experience with unix. we were given an assignment to make 2 files. one to Input 10 numbers and print out the biggest number, and one to Write a script... (1 Reply)
Discussion started by: wendyshephard
1 Replies
7. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
make 2 files. one to Input 10 numbers and print out the biggest number, and one to Write a script that can check... (1 Reply)
Discussion started by: wendyshephard
1 Replies
8. Programming
Hi, im trying to lern about raw sockets with my debian and c++. Tried to make a icmp and tcp packet and send it with sendto. Checked on wireshark and recognized that kernel changed my headers. So searched about stopping the kernel change the header and tried it with setsockopt, like said in at this... (4 Replies)
Discussion started by: sandcastle
4 Replies
9. Programming
Hi,
I have started reading about Linux kernel. The books also explains about the source code here and there.
I found a file named head.s in the source which i am not able to understand, it looks like some assembly language.
Can anyone confirm this, so that can start looking for assemble... (3 Replies)
Discussion started by: kumaran_5555
3 Replies
10. Ubuntu
I'm a beginner to the Linux programming and trying my hands on some device driver examples while practising. The below code (a trimmed down version of tiny_tty.c from ldd3 book) loads perfectly using insmod and I'm able to see it in /proc/tty/drivers , /proc/modules and device nodes are getting... (1 Reply)
Discussion started by: diwsdiwa
1 Replies
LEARN ABOUT DEBIAN
fs_setcachesize
FS_SETCACHESIZE(1) AFS Command Reference FS_SETCACHESIZE(1)
NAME
fs_setcachesize - Sets the size of the disk cache
SYNOPSIS
fs setcachesize [-blocks <size (0 = reset)>>] [-reset] [-help]
fs setca [-b <size (0 = reset)>>] [-r] [-h]
fs cachesize [-b <size (0 = reset)>>] [-r] [-h]
fs ca [-b <size (0 = reset)>>] [-r] [-h]
DESCRIPTION
The fs setcachesize command changes the number of kilobyte blocks of local disk space available to the Cache Manager for its data cache, on
machines that use a disk cache. The command is not operative on machines that use a memory cache.
To return the cache size to the default value specified in the third field of the local /etc/openafs/cacheinfo file, provide a value of 0
to the -blocks argument.
To return the cache size to the value set when the machine was last rebooted, use the -reset flag instead of the -blocks argument. This is
normally the amount specified in the cacheinfo file, unless the -blocks argument was included on the afsd command to override the cacheinfo
value.
To display the current cache size and amount of cache in use, for both disk and memory caches, use the fs getcacheparms command.
CAUTIONS
This command is not operative on machines using a memory cache, and results in an error message. To change memory cache size, edit the
cacheinfo file and reboot, or reboot and provide the -blocks argument to the afsd command.
On machines using a disk cache, do not set the cache size to exceed 85% to 90% of the actual disk space available for the cache directory.
The cache implementation itself requires a small amount of space on the partition.
OPTIONS
-blocks <size>
Specifies the amount of disk space available for the Cache Manager to devote to the cache. The size should be a positive integer
followed by an optional suffix: "K" for kibibytes (1024 bytes, the default), "M" for mebibytes (1024 kibibytes), "G" for gibibytes
(1024 mebibytes), and "T" for tebibytes (1024 gibibytes). Provide a value of 0 to set cache size to the default specified in the
cacheinfo file.
-reset
Returns the cache size to the value set when the machine was last booted. This agrees with the value in the cacheinfo file unless the
-blocks argument was used on the afsd command.
-help
Prints the online help for this command. All other valid options are ignored.
EXAMPLES
The following command sets the disk cache size to 25000 kilobyte blocks.
% fs setcachesize -blocks 25000
Both of the following commands reset the disk cache size to the value in the cacheinfo file, assuming that the -blocks argument to the afsd
command was not used.
% fs setcachesize -blocks 0
% fs setcachesize -reset
PRIVILEGE REQUIRED
The issuer must be logged in as the local superuser root.
SEE ALSO
cacheinfo(5), afsd(8), fs_getcacheparms(1)
COPYRIGHT
IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
This documentation is covered by the IBM Public License Version 1.0. It was converted from HTML to POD by software written by Chas
Williams and Russ Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
OpenAFS 2012-03-26 FS_SETCACHESIZE(1)