기억장치의 종류
1) 레지스터
- 중앙처리장치 내부에 존재하는 기억장치로 접근 시간이 중앙처리장치의 처리 속도와 비슷함
2) 캐시 메모리
- 중앙처리장치가 주기억장치에 접근할 때 속도 차이를 줄이기 위해 사용
- 실행 중인 프로그램의 명령어와 데이터를 저장
3) 주기억장치
- 중앙처리장치가 직접 데이터를 읽고 쓸 수 있는 장치
- 종류
종류 | 설명 |
ROM(Read Only Memory) | 읽기만 가능한 읽기 전용 메모리 비휘발성 메모리 |
RAM(Random Access Memory) | 기억장소를 임의로 접근할 수 있는 메모리 읽고 쓰기가 가능한 휘발성 메모리 |
4) 보조기억장치
- 주기억장치에 비해 접근 시간은 느리지만 기억 용량이 크다.
- 종류 : HDD, SSD, CD, USB, 플로피 디스크 등
5) 연관 메모리
- CPU가 찾고자하는 주기억장치 메모리가 캐시 메모리 어디에 있는지 빠르게 검색할 수 있게 사용하는 메모리
- 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access 할 수 있는 기억장치
시스템 소프트웨어
응용 소프트웨어를 실행하기 위한 플랫퐁음 제공하고, 컴퓨터 하드웨어를 동작하고 접근한다.
종류
- 로더 : 어떤 프로그램을 실행하기 위해 해당 목적 프로그램을 메모리에 적재하고 배치 주소를 옮기는 프로그램
- 링커 : 프로그램 구현 시 목적파일을 실행파일로 변환해 주는 프로그램
- 유틸리티 : 컴퓨터 하드웨어, 운영체제, 응용 소프트웨어를 관리하는 데 도움을 주는 프로그램
- 번역기 ( 컴파일러, 어셈블러 ) : 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램
- 장치 드라이버 : 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램
- 운영체제 : CPU 메모리와 하드디스크 등의 하드웨어를 관리하는 등의 많은 일을 해주는 프로그램
구성
1) 제어 프로그램 😎
- 감시 프로그램 : 각종 프로그램의 실행과 시스템 전체의 작동 상태를 감시/감독하는 프로그램
- 작업관리 프로그램 : 연속 처리를 위한 스케줄 및 시스템 자원 할당 등 담당
- 데이터 관리 프로그램 : 주기억/보조기억장치 사이의 자료전송, 파일의 조작 및 처리, 입출력 자료와 프로그램 간의 논리적 연결 등 처리할 수 있도록 관리
2) 처리 프로그램
- 서비스 프로그램
- 문제 프로그램
- 언어 번역 프로그램
운영체제
응용프로그램이 실행되는 과정에서 하드웨어들을 제어하여 응용프로그램을 실행시키고 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어
특징
- 여러 프로그램을 같이 실행시키면서 서로 충돌 없이 실행되도록 프로그램 실행을 제어
- 컴퓨터 하드웨어와 프로그램 사이의 인터페이스
- 컴퓨터에서 발생할 수 있는 각종 오류나 예외상황을 감지하고 상위 계층에 보고
- 컴퓨터 자원의 이용 현황에 대한 통계자료를 제공
종류
1) 윈도우
마이크로소프트사에서 개발한 운영체제
특징
- GUI 제공 : 그래픽 사용자 인터페이스 제공
- 선점형 멀티태스킹 방식 : 동시에 여러 개의 프로그램을 실행, 운영체제가 각 작업의 CPU 이용시간 제어
- 자동감지 기능 제공 : 하드웨어 설치 시 필요한 시스템 환경을 운영체제 자동 구성
- OLE : 개체를 현재 작성 중인 문서에 삽입하여 편집할 수 있게 하는 기능 제공
2) 리눅스
1991년 리누스 토발즈에 의해 오픈소스로 개발된 유닉스 호환 OS
특징
- 다중 사용자 시스템
- 오픈 소스
- 파일 시스템
- 이식성 / 유연성 / 확장성
- 다양한 배포판
3) 유닉스 😎
1969년 벨 연구소가 개발한 공개형 오픈소스 운영체제 ( OS )로 대부분의 현대적 컴퓨터 운영 체제의 원형
특징
- 시분할 시스템을 위해 설계된 대화식 운영체제
- 대부분 C언어로 작성이 되어 있어 이식성이 높고, 장치 및 프로세스 간의 호환성이 높다.
- 다양한 유틸리티 프로그램 존재
- 다중 사용자, 다중 작업을 지원
유닉스 시스템의 구성
- 커널
- UNIX의 가장 핵심적인 부분
- 컴퓨터가 부팅될 때, 주기억장치에 적재된 후 상주하면서 실행
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 담당 역할
- 쉘
- 명령어 해석기로 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어
- 시스템과 사용자 간의 인터페이스 담당
유닉스 파일 시스템의 구조
구조 | 설명 |
부트블록 | 부팅 시 필요한 코드를 저장하고 있는 블록 |
슈퍼블록 | 전체 파일 시스템에 대한 정보를 저장하고 있는 블록 |
I-node 블록 | 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록 |
데이터 블록 | 실제 파일에 대한 데이터가 저장된 블록 |
FD ( File Descriptor ) 파일 디스크립터
- 유닉스 시스템에서 프로세스가 파일들을 접근할 때 이용
- 파일 제어 블록이라고도 한다.
- 파일 관리를 위해 세스템이 필요로 하는 정보를 가지고 있다.
- 파일마다 독립적으로 존재하며, 시스템에 따라 다른 구조를 가질 수 있다.
- 사용자가 직접 참조할 수 없다.
POSIX
- 이식 가능한 운영체제 인터페이스
유닉스의 주요 명령어
명령어 | 설명 |
ls | 디렉토리의 파일 목록을 표시 |
cd | 디렉토리 변경 |
mkdir | 새 디렉토리 생성 |
rmdir | 빈 디렉토리 삭제 |
mv | 파일 또는 디렉토리 이동 또는 이름 변경 |
find | 파일 및 디렉토리 검색 |
grep | 파일 내에서 특정 문자열 검색 |
chmod | 파일 또는 디렉토리의 권한 변경 |
chown | 파일 또는 디렉토리의 소유자 변경 |
kill | 프로세스 종료 |
pwd | 현재 작업 중인 디렉토리 경로 출력 |
Linux, Unix 파일 접근 권한 관리
-rwxr-xr--
| | | |
| | | +--- 다른 사용자(other)의 권한
| | +------ 그룹 소유자(group)의 권한
| +--------- 파일 소유자(owner)의 권한
+------------ 파일 유형
- | 파일 유형 (예: -는 일반 파일, d는 디렉토리) |
r | 읽기 권한 (read) |
w | 쓰기 권한 (write) |
x | 실행 권한 (execute) |
chmod ( 권한 변경 )
- 파일이나 디렉토리의 접근 권한을 변경하는데 사용
chmod 755 filename
umask ( 접근 권한 마스크 )
- 새로 생성되는 파일이나 디렉토리의 기본 권한을 설정하는 데 사용
- umask 값은 기본 권한에서 제외할 권한을 지정한다.
- 기본 파일 권한은 666 (rw-rw-rw-)이고, 기본 디렉토리 권한은 777 (rwxrwxrwx)이다.
umask 022
chown ( 소유주 변경 )
- 파일이나 디렉토리의 소유자와 그룹을 변경하는 데 사용
- 소유자는 파일이나 디렉토리 소유권을 가지며, 그룹은 특정 사용자 그룹에 권한을 부여할 수 있다.
chown newowner filename
기억 장치 전략
보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용한다.
관리 전략
1) 반입 ( Fetch ) 전략
보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
요구 반입 | 실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법 |
예상 반입 | 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법 |
2) 배치 ( Placement ) 전략
새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략
최초 적합 ( Firtst Fit ) | 프로그램이나 데이터가 들어갈 수 잇는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치 |
최적 적합 ( Best Fit ) | 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화가 가장 작은 분할 영역에 배치 |
최악 적합 ( Worst Fit ) | 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화가 가장 큰분할 영역에 배치 |
3) 교체 ( Replacement ) 전략
주기억장치의 모든 영역이 이미 사용 중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
주기억장치 할당 기법
1) 단일 분할 할당 기법
주기억장치의 사용 시 한 순간에는 오직 한 명의 사용자 만이 주기억장치의 사용자 영역을 사용하는 기법
가장 단순한 기법으로 초기의 운영체제에서 많이 사용했던 기법
주기억장치보다 큰 프로그램을 사용하기 위해 오버레이 기법과 스와핑 기법을 사용함
- 오버레이 기법
- 보조기억장치에 저장된 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재시켜 프로그램을 실행
- 스와핑 기법
- 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따른 프로그램과 교체하는 기법
2) 다중 분할 할당 기법
- 고정 분할 할당 기법
- 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고, 준비 상태 큐에서 준비 중인 프로그램을 각 영역에 할당하여 수행하는 기법
- 내부 단편화 및 외부 단편화가 발생하여 주기억장치의 낭비가 많다.
- 가변 분할 할당 기법
- 고정 분할 할당 기법의 단편화를 줄이기 위한 기법
- 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법
- 주기억장치를 효율적으로 사용할 수 있으며, 다중 프로그래밍의 정도를 높일 수 있다.
단편화
주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간
종류
1) 내부 단편화
- 주기억장치 공간이 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남아있는 공간
2) 외부 단편화
- 주기억장치 공간보다 프로그램이 커서 프로그램이 할당될 수 없어 사용되지 않고 남아있는 공간
단편화 계산
영역 | 분할 크기 | 작업 크기 | 단편화 크기 |
1 | 20K | 10K | 내부 : 10K |
2 | 50K | 60K | 외부 : 50K |
3 | 120K | 160K | 외부 : 120K |
4 | 200K | 100K | 내부 : 100K |
단편화 해결 방법
1) 통합 ( Coalescing ) 기법
- 인접해 있다면 두 개의 분할 공간을 하나로 통합하여 효율성을 높이는 작업
2) 압축 ( Compaction ) 기법
- 주기억장치 내 분산되어 있는 단편화 공간들을 통합하여 하나의 커다란 빈 공간을 만드는 작업
- 가비지 컬렉션 작업이라고도 함
3) 재배치 ( Relocation ) 기법
- 압축을 실행하여 이 과정에서 프로그램의 주소를 새롭게 지정해주는 기법
'정보처리기사' 카테고리의 다른 글
모의고사 -2 (0) | 2024.06.18 |
---|---|
모의고사 -1 (0) | 2024.06.18 |
데이터베이스 구축-4 (2) | 2024.06.14 |
데이터베이스 구축-3 (1) | 2024.06.13 |
데이터베이스 구축-2 (0) | 2024.06.13 |