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