목록2-1/운영체제 (34)
브래의 슬기로운 코딩 생활
20문제이며, 각 문제번호 당 하기 사항에 대한 지문이 있습니다. 1. 공유메모리 관련 프로그래밍 기술 2. 메시지큐 관련 프로그래밍 기술 3 ~ 5. 연속메모리 할당(고정, 가변) 6. 가상기억장치 관리 전략 7. 디스크 구조 및 스케줄링에 따른 성능 분석, RAID 종류 8~11. 파일시스템 및 기록구조 12~13. 디렉토리 및 경로관련 사항 14~20. 파일 처리 함수 1. 공유메모리 관련 프로그래밍 기술 공유 메모리 개념 - Shared Memory - 동일한 메모리공간을 서로 다른 프로세스들이 공유 - 운영체제를 통해 공간이 공유됨 사용(프로그래밍) 절차 1. 공유 메모리 생성 2. 프로세스에 공유 영역을 첨부 3. 공유 영역 접근 4. 첨부된 공유 영역을 해제 5. 공유 메모리 삭제 공유 메모..
파일 시스템 - 파일 처리 함수 2 작업 경로 추출 현재 작업 경로 추출 1. 함수 : getcwd(), getwd() • 현재 작업중인 경로의 위치를 추출 • getwd의 경우 내부 정적 공간을 사용(re-entrance주의) 인자: – *buf : 현재 경로 저장 – size : buf의 크기 결과 값: – 성공 : 저장된 데이터의 위치(buf의 포인터) – 실패 : NULL 2. 함수 : get_current_dir_name() • 현재 작업중인 경로 추출(getcwd, getwd와 동일) • 이 함수의 호출은 내부에서 동적 메모리 할당이 이루어짐(malloc() 함수 호출) • 사용 후 반드시 메모리 환원을 해줘야 함(free() 함수 호출) 작업 경로 전환 현재 작업 경로 전환 1. 함수 : c..
파일 시스템 - 파일 처리 함수 1 파일 상태정보 추출 파일 상태 추출 fstat(), stat(), lstat()의 세 종류의 함수가 있음 지정한 파일에 대한 상태를 statbuf에 기록 fstat() : 파일기술자를 통해 상태정보를 추출 stat() & lstat()는 주어진 파일명(문자열)을 통해 상태정보를 추출 • stat()의 경우 링크 파일일 때 원본에 접근 • lstat()는 stat()와는 달리 주어진 파일 자체 정보를 추출 접근 위치 이동(L) 위치 이동(저수준) 함수 : lseek() • 파일의 접근 위치를 주어진 값으로 이동 • 파일 기술자를 통한 접근 방식 인자 : • fd : 파일의 기술자 • offset : 이동할 위치 • whence : 기준(SEEK_SET, SEEK_CUR,..
파일 시스템 - 파일의 접근권한 접근 권한 보기 파일 및 디렉토리 보기 명령어: ls • 지정한 경로(생략: 현재 위치)에 대한 파일들의 속성(permission, ownership, size, file name …)을 출력 • 대표적 옵션: – -a(--all) : 숨겨진 파일과 디렉토리까지 출력 – -l : (long) : 파일과 디렉토리에 대한 상세정보를 출력 – -i : 파일의 i-node의 값을 출력 – -R : 하위 폴더(sub-directories) 내 모든 파일들을 출력 파일 속성 파일의 접근 권한 보기 파일의 접근 권한 조합 접근 권한 수정 파일의 접근 권한 수정 명령어: chmod [모드] [대상 파일 또는 디렉토리] 자신이 소유한 파일에 대해서만 접근 권한을 변경할 수 있음 • 단, ..
파일 시스템 - 기본개념과 응용 응용 실습 파일 처리 : 생성 및 시간변경 명령: touch [-t YYYYMMDDhhmm.ss] filename • 파일의 시간 정보 수정을 주목적으로 함 • 지정한 파일이 없을 때에는 파일을 생성 • 시간 생성을 위한 옵션으로 “-t”를 사용 – 예: touch –t 202104200910.00 • 일반적 옵션: – -a : 접근 시간만 변경 – -m : 수정 시간만 변경 시간 확인 • 명령 예: – $ ls -l --full-time --time=atime – $ ls -l --full-time --time=ctime – $ ls -l --full-time --time=birth 파일 처리 : 타입 보기 명령: file filename • 지정한 파일의 타입을 출력 ..
파일 시스템 - 기본 개념 파일 시스템 정의 저장매체(예: 하드디스크)에 데이터를 효율적으로 관리하기 위한 용도 컴퓨팅을 위한 파일들을 관리하는 운영체제의 한 부분 • 파일에 데이터를 효율적으로 읽고 쓰기 위해 구현 • 파일들을 효율적으로 관리하기 위해 구현 운영체제의 기능 및 특성에 따라 다양한 파일 시스템이 존재 파일 테이블 & 블록(Block) 블록 • 운영체제가 저장장치에 데이터의 접근을 위한 가장 작은 단위 • 블록의 크기는 사용자의 선택에 따라 달리 지정할 수 있음 = 포맷(Format)과정에서 수행 • 작은 블록의 크기 – 내부 단편화 줄어듦 – 블록의 개수가 많음 = 성능 저하 • 큰 블록의 크기 – 내부 단편화가 많아짐 = 공간 낭비 – 블록의 개수가 적음 = 성능 향상 파일 테이블 • ..
입출력시스템 - 디스크 및 RAID 하드 디스크 구조 기본 구조 - 암이 이동하여 트랙의 선별이 가능 - 원판이 회전하여 섹터의 접근이 가능 기능 원판(플래터) • 표면에 자성을 입혀 0과 1의 데이터를 저장 - N극 : 0 / S극 : 1 • 보통 2장 이상으로 구성 • 일정한 속도로 회전 섹터 • 하드디스크의 가장 작은 저장 단위 • 하나의 섹터에는 한 덩어리의 데이터가 저장 • 블록 - 하드디스크와 운영체제 사이 데이터 전송을 위한 단위 - 한 블록은 하드디스크내 여러 개의 섹터로 구성됨 • 섹터 vs 블록 - 하드디스크의 저장 단위 - 운영체제의 저장 단위 트랙 • 회전축을 중심으로 데이터가 기록되는 동심원 • 동일한 반경에 있는 섹터들의 집합 헤드 • 하드디스크에서 데이터를 읽거나 쓸 때 사용 ..
메모리의 재배치전략 기억 장치 관리 사용 방식 기억 장치 응용 주요 키 가상 기억 장치(Virtual Memory) • 보조 기억 장치의 일부를 주기억장치 처럼 사용 • 프로그램 크기의 제약을 극복(단, 실행 속도↓) 가상 디스크(Virtual Disk) • 주기억장치의 일부를 보조기억장치처럼 사용 • 램드라이브(RAM Drive) 인터리빙(Interleaving) • 기억 장치의 연속된 위치를 서로 다른 뱅크로 구성 • 동시에 여러 개의 위치에 접근이 가능(속도↑) DMA(Direct Memory Access) • CPU를 거치지 않고 주변장치가 직접 주기억 장치에 접근 • 입출력 속도가 향상 • 사이클 스틸링(Cycle Stealing, 사이클 훔치기) 기법이 사용됨 기억 장치 분할 고정 분할(정적 ..
입출력시스템 입출력 버스 구조 및 버퍼링 입출력 버스 구조 초기 구조 - 모든 장치가 하나의 버스로 연결 - CPU가 입출력장치로부터 데이터를 가져오기 위해 폴링(polling) 방식 이용 입출력 제어기 적용 구조 - 메인 버스와 입출력 버스의 2개의 채널로 구성 • 메인 버스 : 고속으로 작동하는 CPU와 메모리가 사용 • 입출력 버스 : 주변장치가 사용 - CPU와 메모리의 작업이 느려지는 것을 막을 수 있음 - 단, 주변장치들은 모두 늦은 속도와 동기를 맞춤 입출력 버스를 분리 - 입출력 속도를 고려하여 버스를 분리 후 적용 버퍼링 버퍼(buffer) - 속도가 다른 두 장치 간 통신 시 대시 기간을 단축하기 위해 임시로 기록하기 위한 공간 - 장치의 일기/쓰기의 횟수를 감소 = 성능 향상 - 외부..
입·출력시스템 입·출력장치의 통신 방식 입출력장치와 통신 데이터 전송 속도에 따른 분류 - 저속의 주변장치(키보드, 마우스 등)와 고속 주변장치(그래픽 카드, 하드 디스크 등)로 나뉨 - 하나의 버스로 주변장치를 묶으면 저속 장치로 인해 고속 장치의 활용성이 떨어짐 = 효율성 저하 버스의 기본적인 연결 구조 - CPU와 주기억장치(RAM)를 주 축으로 다른 입출력장치와 통신함 - 모든 통신은 시스템 버스(FSB)를 통해 가능 (주소, 제어, 데이터 버스로 구성) 채널(channel) - 데이터가 지나가는 통로 - 버스(BUS)를 통한 논리적인 경로 채널 공유와 분리 - 서로 다른 전송 대역(bandwidth)을 갖는 장치들 간 채널을 공유 또는 분리 공유 • 공유되는 통로를 통해 모든 연결된 주변 장치들..