Linux เชฎเชพเช‚ เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชฒเซ‡เช–เชจเซ‹ เช…เชจเซเชตเชพเชฆ เช•เซ‹เชฐเซเชธเชจเซ€ เชถเชฐเซ‚เช†เชคเชจเซ€ เชชเซ‚เชฐเซเชตเชธเช‚เชงเซเชฏเชพเช เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ "เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ Linux.Basic".

Linux เชฎเชพเช‚ เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชธเซ‡เชฎเชพเชซเซ‹เชฐ เช เชเช• เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช›เซ‡ เชœเซ‡ เชธเซเชชเชฐเซเชงเชพเชคเซเชฎเช• เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เช…เชจเซ‡ เชฅเซเชฐเซ‡เชกเซ‹เชจเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชตเชนเซ‡เช‚เชšเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเชตเชฟเชง เชธเชฟเช‚เช•เซเชฐเซ‹เชจเชพเช‡เชเซ‡เชถเชจ เชธเชฎเชธเซเชฏเชพเช“ เชœเซ‡เชฎ เช•เซ‡ เชฐเซ‡เชธ, เชกเซ‡เชกเชฒเซ‰เช•เซเชธ (เชชเชฐเชธเซเชชเชฐ เชคเชพเชณเชพเช“), เช…เชจเซ‡ เช—เซ‡เชฐเชตเชฐเซเชคเชฃเซ‚เช• เชฅเซเชฐเซ‡เชกเซ‹เชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡.

เช† เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡, เช•เชฐเซเชจเชฒ เชฎเซเชฏเซเชŸเซ‡เช•เซเชธ, เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธ, เชธเชฟเช—เซเชจเชฒเซ‹ เช…เชจเซ‡ เช…เชตเชฐเซ‹เชงเซ‹ เชœเซ‡เชตเชพ เชธเชพเชงเชจเซ‹ เชชเซ‚เชฐเชพ เชชเชพเชกเซ‡ เช›เซ‡.

เชคเซเชฏเชพเช‚ เชคเซเชฐเชฃ เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธ เช›เซ‡:

  1. เชฆเซเชตเชฟเชธเช‚เช—เซ€ เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธ
  2. เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธ-เช•เชพเช‰เชจเซเชŸเชฐเซเชธ (เช—เชฃเชคเชฐเซ€ เชธเซ‡เชฎเชพเชซเซ‹เชฐ)
  3. เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธเชจเซ€ เชเชฐเซ‡ (เชธเซ‡เชฎเชพเชซเซ‹เชฐ เชธเชฎเซ‚เชน)

IPC เชธเซเชŸเซ‡เชŸเชธ เชœเซเช“

เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเซ‹ เช‡เชจเซเชŸเชฐ-เชชเซเชฐเซ‹เชธเซ‡เชธ เช•เชฎเซเชฏเซเชจเชฟเช•เซ‡เชถเชจ (IPC)เชจเซ€ เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest
0x00000000 131074 root 600 393216 2 dest
0x00000000 163843 root 600 393216 2 dest
0x00000000 196612 root 600 393216 2 dest
0x00000000 229381 root 600 393216 2 dest
0x00000000 262150 root 600 393216 2 dest
0x00000000 294919 root 600 393216 2 dest
0x00000000 327688 root 600 393216 2 dest
------ Semaphore Arrays --------

key semid owner perms nsems

------ Message Queues --------
key msqid owner perms used-bytes messages

เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธเชจเซ€ เชธเช•เซเชฐเชฟเชฏ เชเชฐเซ‡

เชธเช•เซเชฐเชฟเชฏ เชธเซ‡เชฎเชพเชซเซ‹เชฐ เชเชฐเซ‡ เชตเชฟเชถเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชฆเชฐเซเชถเชพเชตเซ‹.

# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems

เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€ เชธเซ‡เช—เชฎเซ‡เชจเซเชŸเซเชธ

เชธเช•เซเชฐเชฟเชฏ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€ เชธเซ‡เช—เชฎเซ‡เชจเซเชŸเซเชธ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชœเซเช“.

# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest

เชฎเชฐเซเชฏเชพเชฆเชพ

เชŸเซ€เชฎ ipcs -l เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€, เชธเซ‡เชฎเชพเชซเซ‹เชฐ เช…เชจเซ‡ เชธเช‚เชฆเซ‡เชถ เชฎเชฐเซเชฏเชพเชฆเชพ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

# ipcs -l
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 1073741824
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767

------ Messages: Limits --------
max queues system wide = 16
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536

เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€

เชจเซ€เชšเซ‡เชจเซ‹ เช†เชฆเซ‡เชถ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 65536 root 600 393216 2 dest
0x00000000 98305 root 600 393216 2 dest
0x00000000 131074 root 600 393216 2 dest
0x00000000 163843 root 600 393216 2 dest
0x00000000 196612 root 600 393216 2 dest
0x00000000 229381 root 600 393216 2 dest
0x00000000 262150 root 600 393216 2 dest
0x00000000 294919 root 600 393216 2 dest
0x00000000 327688 root 600 393216 2 dest

เชธเช‚เชธเชพเชงเชจ เชจเชฟเชฐเซเชฎเชพเชคเชพเช“

เช†เชฆเซ‡เชถ เชธเช‚เชธเชพเชงเชจเชจเชพ เชฎเชพเชฒเชฟเช• เช…เชจเซ‡ เชธเชฐเซเชœเช•เชจเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชจเซ‡ เชœเซ‚เชฅเชจเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

# ipcs -m -c

------ Shared Memory Segment Creators/Owners --------
shmid perms cuid cgid uid gid
65536 600 root root root root
98305 600 root root root root
131074 600 root root root root
163843 600 root root root root
196612 600 root root root root
229381 600 root root root root
262150 600 root root root root
294919 600 root root root root
327688 600 root root root root

IPC เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช—

เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚, เชชเชฐเชฟเชฎเชพเชฃ -u เชคเชฎเชพเชฎ IPC เชธเชพเชงเชจเซ‹เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‹ เชธเชพเชฐเชพเช‚เชถ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡.

# ipcs -u

------ Shared Memory Status --------
segments allocated 9
pages allocated 864
pages resident 477
pages swapped 0
Swap performance: 0 attempts 0 successes

------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0

------ Messages: Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

เชœเซเชฏเชพเชฐเซ‡ เชธเซ‡เชตเชพเช“ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธ เช…เชจเซ‡ เชถเซ‡เชฐ เช•เชฐเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€ เชธเซ‡เช—เชฎเซ‡เชจเซเชŸเซเชธ เชชเชฃ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพ เชœเซ‹เชˆเช. เชœเซ‹ เชคเซ‡เช“เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เชจ เช†เชตเซ‡, เชคเซ‹ เช† IPC เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเชพ เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‡ เชชเชธเชพเชฐ เช•เชฐเซ€เชจเซ‡, ipcrm เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

# ipcs -a
# ipcrm -s < sem id>

เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเซ‡เชฎเชพเชซเซ‹เชฐ เชฎเชฐเซเชฏเชพเชฆเชพ เชชเชฃ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹ sysctl.

# /sbin/sysctl -w kernel.sem=250

Linux เชฎเชพเช‚ เชธเซ‡เชฎเชพเชซเซ‹เชฐเซเชธเชจเซ‹ เชชเชฐเชฟเชšเชฏ

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹