8 강. 프로세스관리명령 (1) 파일시스템및디스크관리명령 mount, umount, mkfs, fsck, fdisk, mkswap, du, df 등 mount 명령의기능 장치에구성된파일시스템을지정된디렉터리 ( 마운트지점 ) 에붙여파일시스템을사용할수있게함 mount -a [-fnrvw] [-t 파일시스템유형 ] mount [-fnrvw] [-o 옵션 [,...] ] 장치 디렉터리 mount [-fnrvw] [-t 파일시스템유형 ] [-o 옵션 ] 장치디렉터리 mount 관련파일 : /etc/fstab -부팅시마운트되는파일시스템목록을가짐 -예: 다음줄을 /etc/fstab에추가하고 /mnt/cdrom 디렉터리생성함 /dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0 mount 명령의사용법 옵션 -f : 실제마운트하지않고마운트가능한지점검 -r : 읽기전용으로마운트 -w : 읽기, 쓰기모드로마운트 -t type : 파일시스템유형을 type으로지정 -a : /etc/fstab에나열된모든파일시스템을마운트 -o options : 마운트옵션을지정, 옵션이여러개일경우 ',' 로구분 mount 명령의사용예 mount [-t ext3 ] ( 현재마운트된 [ ext3 유형의 ] 모든파일시스템을보여줌 ) mount -t iso9660 /dev/cdrom /mnt/cdrom (CD-ROM 드라이브를 /mnt/cdrom 디렉터리에마운트 ) mount -a [-t iso9660 ] (/etc/fstab에나열된 [ iso9660 유형의 ] 모든파일시스템을마운트 ) mount /dev/cdrom 또는 mount /mnt/cdrom (/etc/fstab에기술된파일시스템을마운트할경우장치명또는마운트포인트만명시 ) mount /dev/sdb1 /media/usb (usb 장치를 /media/usb 디렉터리에마운트 ) 운영체제별파일시스템을 mount 하는예 해당장치가존재하는지, 파일시스템종류가맞는지확인 mount 명령을실행하기전마운트지점디렉터리를생성
사용예 mount t msdos /dev/hda2 /mnt/msdos mount t vfat /dev/hda3 /mnt/win98 mount t ntfs /dev/hda4 /mnt/win2000 mount t ext2 /dev/hda5 /mnt/inux umount 명령 디렉터리에마운트되어있는저장장치를해당디렉터리로부터분리 umount -a [-nv] [-t 파일시스템유형 ] umount [-nv] 장치 디렉터리 옵션 -a : /fstab에나열된모든파일시스템을언마운트 -t type : 해당파일시스템유형에만적용 umount 명령의사용예 umount /mnt/cdrom 또는 umount /dev/cdrom ( 현재 /mnt/cdrom 디렉터리에마운트되어있는 CD-ROM 드라이브를언마운트 ) umount a t iso9660 (/etc/fstab에나열되어있는파일시스템중 iso9660 유형을모두언마운트 ) umount /media/usb ( 현재 /media/usb 디렉터리에마운트되어있는 usb 장치를언마운트 ) mkfs 명령 하드디스크파티션에리눅스파일시스템을생성 파일시스템의생성절차 -사용자는 root 권한을가져야함 -사용되지않는디스크나파티션이있어야함 -VirtuaBox에서추가디스크생성가능 ( 가상머신전원 off 상태에서 [ 설정 ]-[ 저장소 ]-[ 컨트롤러 :IDE]-마우스오른쪽버튼-[ 하드디스크추가하기 ] 실행 ) -실험용 USB를준비하고실습할수있음 mkfs 명령의사용법 mkfs [ -t 파일시스템유형 ] [ fs-options ] 장치이름 [ 블록 ] 옵션 -t : 만들어질파일시스템의유형지정 fs-options : 파일시스템옵션 블록 : 파일시스템을위해사용되는블록의개수 mkfs 명령의사용예 mkfs t ext3 /dev/hdb ( 하나의파티션으로이루어진 IDE primary save 디스크에 ext3 파일시스템을생성 )
fsck 명령 기능및특징 -관리자명령으로마운트되어있지않은파일시스템을검사 -파일시스템의일관성을검사하고대화식으로파일시스템을복원 -명령수행시유효한데이터가유실될가능성이있는조작은피함 fsck [-AVRTNP] [-s] [-t 파일시스템유형 ] [ 옵션 ] [ 파일시스템 ] 관련파일 /etc/fstab, /etc/fiesystems fdisk 명령 하드디스크파티션을관리하는대화식유틸리티 fdisk [ 옵션 ] [ 하드디스크장치명 ] fdisk 대화식명령 ( 메뉴방식 ) 의종류 p : 파티션테이블출력 n : 새로운파티션추가 d : 파티션삭제 w : 파티션테이블기록하고끝냄 사용예 tai -f /var/og/messages로확인하고 <Ctr>+<C> (usb 장치이름을확인 ) umount /dev/sdb1 mkdir /media/usb1; mkdir /media/usb2 fdisk cu /dev/sdb p로확인하고 d로지움 n p 1하고 p로확인, n p 2하고 p로확인후, w mkfs t vfat /dev/sdb1; mkfs t vfat /dev/sdb2 mount /dev/sdb1 /media/usb1; mount /dev/sdb2 /media/usb2 mkswap 명령 지정한특정장치나파일을리눅스용스왑영역으로지정 mkswap 명령형식 mkswap [ 옵션 ] 장치또는파일명 [ 블록크기 ] 장치이름 인자로 사용될 수 있는 장치이름 : /dev/hda[1-8], /dev/hdb[1-8], /dev/sda[1-8], /dev/sdb[1-8] 블록크기는원하는블록단위크기 swapon / swapoff 명령 스왑영역사용설정 / 해제 free -m으로스웝영역을확인함 mkswap 명령사용예
스왑파일사용의일반적처리과정 dd if=/dev/zero of=/swapfie bs=1024 count=8192 mkswap /swapfie 8192 swapon /swapfie (swap 영역으로사용됨 ) swapoff /swapfie (swap 영역사용이해제됨 ) du(disk usage) 명령 파일에사용되는블록수를표시 du [ 옵션 ] [ 디렉터리...] 사용예 du du s ( 하위디렉터리내역을생략하고총블록수만표시 ) du --max-depth=1 ( 바로아래디렉터리까지만블록수표시 ) du /home (/home 디렉터리와하위디렉터리의블록수표시 ) df(disk free) 명령 지정한파일이있는파일시스템의디스크공간정보를보여줌 df [ 옵션 ] [ 파일명...] 사용예 df ( 모든파일시스템의공간정보 ) df i ( 모든파일시스템의 i-node 사용정보 ) df /home (/home 디렉터리가있는파일시스템의공간정보 ) quota 명령 사용자의디스크사용량한도를설정 관련된명령들 quota [ 옵션 ] user group : 사용량및한도표시 quotacheck : quota 검사및정보생성 edquota : 사용자, 그룹별사용량한도설정 quotaon : 사용량한도적용 quotaoff : 사용량한도해제 quota 명령사용예 VirtuaBox에서 IDE primary save 디스크추가 fdisk 명령으로파티션을생성하지않으면하나의파티션이존재 mkfs t ext3 /dev/hdb (/dev/hdb 디스크의파티션에 ext3 파일시스템생성 ) mkdir /mnt/inux ( 마운트지점 /mnt/inux 디렉터리생성 ) /etc/fstab 파일에다음줄추가 /dev/hdb /mnt/inux ext3 defauts,usrquota 1 2
mount /dev/hdb (/etc/fstab의내용대로파티션을 /mnt/inux 디렉터리에마운트 ) quotacheck cug /mnt/inux (quota 관리파일이 /mnt/inux에생성됨 ) edquota f /mnt/inux nipark (nipark 사용자의 quota를편집하여지정 ) quotaon /mnt/inux (quota 기능을시작 ) quota nipark (nipark 사용자의사용량을보여줌 ) 프로세스 (process) 의정의실행되고있는프로그램커널에등록되어관리를받는작업커널은프로세스관리블록 (PCB, Process Contro Bock) 에정보를저장 프로세스관리블록개요커널에등록된각프로세스에대한정보를저장하는영역 프로세스들은모두커널공간에자신의 PCB를가지며커널이 PCB를관리함 프로세스의개념과작동레벨 프로세스고유번호 (PID) -커널이시스템내의프로세스마다고유하게부여하는번호 -프로세스가생성시부여 프로세스의우선순위 (priority) -프로세스스케줄링을위한정보 -프로세서를할당할프로세스를선정하는데참조 현재상태 (current state) 프로세스가할당받은자원과현재상태 프로세스가할당받은자원에대한정보 -어느자원이어느프로세스에할당되는지알수있음 -자원관리에참고 문맥저장영역 (context save area) -프로세스가실행을중지해야할때각종레지스터 (register) 들의값을보관하기위하여사용 -해당프로세스가다시실행될때레지스터의값을복원 프로세스상태전이도
프로세스의상태개요 활동 (active) / 지연 (suspended) 상태 -활동상태 : 프로세스가기억장치를할당받은상태 -지연상태에서 resume 또는 swap-in 으로활동상태가됨 -지연상태 : 프로세스가기억장치를할당받지못한상태 -활동상태에서 suspend 또는 swap-out 으로지연상태가됨 준비 (ready) / 대기 (bocked) 상태 -준비상태 : 실행에필요한모든자원을할당받은상태 -대기상태 : 실행에필요한자원을요청하고기다리는상태 생성 (created) 상태커널공간에 PCB 등이만들어지고프로세스가처음생성되는상태 준비 (ready) 상태 -기억장치등필요한모든자원을할당받은상태에서프로세서를할당받으려고대기하는상태 -프로세서를할당받게되면즉시실행이가능 -디스패치(dispatch) 또는스케줄 (schedue) : 준비상태에서실행상태로전이되는것 실행 (running) 상태 -프로그램코드가프로세서에의해실행되고있는상태 -프로세스가필요한모든자원을할당받은상태 -선점(preemption) : 실행상태의프로세스가프로세서시간할당량이끝나거나우선순위가높은프로세스가들어왔을때프로세서를반납하고준비상태로전이되는것 -시간종료 (time runout) : 시간할당량의종료로선점되는경우 대기 (bock) 상태 -실행상태의프로세스가자원을요청하여대기상태로전이되는것 -프로세스가필요한자원을요청하고이를할당받을때까지기다리는상태 -웨이크업(wakeup) : 프로세스에요청한자원이할당되어준비상태로전이되는것 지연대기상태프로세스가대기상태에서기억장치를잃은경우지연대기상태로전이됨 지연준비상태 -프로세스가기억장치를제외한다른모든필요한자원들을보유한상태 -지연준비상태로전이되는경우 생성상태의프로세스가기억장치공간이부족하여전이 준비상태의프로세스가기억장치를반납하고전이 실행상태의프로세스가선점당할때기억장치까지반납하고전이 리눅스프로세스의작동레벨 리눅스시스템의실행레벨 (runeve) : 0~6
다음문제의정답을고르시오. 11( 교재 6장 ). 파일시스템관리를위한명령어가아닌것은? 1 fsck 2 fdisk 3 mkfs 4 reiserfs 12( 교재 6장 ). 파일시스템의이상유무를체크하기위하여 fsck 명령을수행하였다. 검사의출력결과값이 4가나왔을때파일시스템은어떠한상태인가? 1 파일시스템이고쳐지지않은에러가남아있음 2 에러없음 3 파일시스템이재부팅필요 4 파일시스템에러가고쳐짐 13( 교재 7장 ). 프로세스의작동레벨중재실행모드로거의실행레벨 0과같지만, init.d가시스템이재실행될것인지, 종료될것인지를결정하는레벨은? 1 Runeve 1 2 Runeve 3 3 Runeve 4 4 Runeve 6 다음문제에대한정답을서술하시오. 16( 교재 7장 ). PCB(Process Contro Bock) 에대하여설명하고, PCB에담긴프로세스의정보를조사하시오. ( 답 ) 프로세스고유번호 (PID) 는커널이시스템내의프로세스들을관리하는데편리성을가지려고프로세스마다고유하게부여되는번호이며, 이는프로세스가생성될때에부여된다. 프로세스의우선순위 (priority) 는운영체제가프로세스스케줄링을하기위한정보이며, 여러가지프로세스들가운데프로세서를할당할프로세스를선정하기위한우선순위를참조하는데사용된다. 커널에등록된프로세스들이각각어떠한자원들을할당받고있고어떠한상태에있는가에따라현재상태 (current state) 를구분할수있으며, 이에대한정보가프로세스현재상태필드에저장되고프로세스상태가변화될때마다정보를갱신하게된다. 프로세스가할당받은자원들에대한정보를저장해놓는영역또는포인터를통하여시스템내의어느자원이어느프로세스에할당되었는지알수있으며, 이를자원관리에참고하여사용할수있다. 마지막으로문맥저장영역 (context save area) 은프로세스가실행도중어떤이유때문에실행을중지해야할때프로세서의각종레지스터 (registers) 에저장하여갖고있던값을보존하기위하여사용된다. 즉, 실행중인프로세스가중지되게되면레지스터문맥을 PCB 영역내에저장하게되고, 이프로세스가다시실행될때에는 PCB 내에저장되었던내용을다시프로세서내의레지스터에되돌려놓는일을한다. 17( 교재 7장 ). 프로세스상태전이도를그려보고각각의상태에대하여설명하시오. 1 생성상태 : 사용자가요청한작업이커널에등록되어커널공간에 PCB 등이만들어지고프로세스가처음생성되는상태 2 준비상태 : 프로세스가기억장치를비롯한필요한모든자원을할당받은상태에서프로세서를할당받으려고대기하는상태
3 실행상태 : 프로세스의프로그램코드가기억장치로부터읽히면서프로세서에의해실행되고있는상태 4 대기상태 : 프로세스가임의의자원을요청하고이를할당받을때까지기다리는상태 5 지연상태 : 프로세스가기억장치를할당받지못한상태 6 지연준비상태 : 프로세스는다른모든필요한자원들을보유하고는있지만, 기억장치와프로세서를잃은상태 7 지연대기상태 : 대기상태에서기억장치를잃은프로세스의상태