컴시 기말고사 정리
순차 접근 방식(Sequential Access) - 슬롯 1부터 순차적으로 진행하며 접근함
직접 접근 방식(Random Access) - 저장 위치에 관계없이 접근함
알고리즘 - 문제 해결 과정에서 규칙성을 찾아 논리적인 순서로 설명,
표현하는 문제 해결 절차나 방법을 말한다.
입 / 출력 : 외부에서 데이터 제공 필요, 1개 이상의 결과가 출력되어야 한다.
명확성: 각 명령어는 그 의미가 명확해야 하며, 모호할 수 없다.
유한성: 알고리즘의 명령대로 실행하면 언젠가는 실행이 종료되어야 한다.
수행 가능성: 모든 명령은 오류 없이 수행 가능해야 한다.
정확성 - 실행 결과가 정확한가?
단순성 - 알고리즘의 구조나 흐름이 이해하기 쉬운가?
수행시간 비교 - 알고리즘이 동작하는데 걸린 시간
기억장소 사용량 - 차지하는 기억 장소의 크기
보조 기억 장치 관리
보조 기억 장치의 개념 -
주 기억 장치에 비해 속도가 느리기에 스케줄링 기법이 중요하다
디스크 스케줄링의 개념 -
디스크 여러 곳에 흩어진 프로그램과 데이터에 접근하기 위해서 움직이는 것
응답 시간의 차이가 많이 나지 않도록 하는 목적을 가짐
1. FCFS(First Come First Service) = FIFO(First In First Out)
- FCFS는 가장 간단한 스케줄링으로, 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 먼저 서비스하는 기법이다.
선 입 선 출
2. SSTF(Shortest Seek Time First)
- SSTF는 탐색 거리(Seek Distance)가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법이다.
최근거리 탐색.
- 현재 헤드 위치에서 가장 가까운 거리에 있는 트랙으로 헤드를 이동시킨다.
3. SCAN
- SCAN은 SSTF가 갖는 탐색 시간의 편차를 해소하기 위한 기법이다.
엘레베이터처럼 가장 가까운 곳으로 가서 그 방향의 모든 요청을 해결한다.
- 현재 헤드의 위치에서 진행 방향이 결정되면 탐색 거리가 짧은 순서에 따라 그 방향의 모든 요청을 서비스하고,
끝까지 이동한 후 역방향의 요청 사항을 서비스한다.
4. C-SCAN(Circular SCAN)
- C-SCAN은 항상 바깥쪽에서 안쪽으로 움직이면서 가장 짧은 탐색 거리를 갖는 요청을 서비스하는 기법이다.
아래로만 내려가는 엘레베이터, 1층에 도착하면 맨 위로 올라간다.
- 헤드는 트랙의 바깥쪽에서 안쪽으로 한 방향으로만 움직이며 서비스하여 끝까지 이동한 후,
안쪽에 더 이상의 요청이 없으면 헤드는 가장 바깥쪽의 끝으로 이동한 후 다시 안쪽으로 이동하면서 요청을 서비스한다.
//출처 https://jess2.tistory.com/83
가상 기억 장치
데이터가 주 기억 장치보다 크거나 공간이 부족할 때 필요한 부분만 주 기억 장치에 두는 것을 말함
이를 통해서 시스템 관리적 측면의 장점을 가지고 있고, 사용자 입장에서 세부사항을 고려하지 않는다.
다만 추가적인 소프트웨어를 통해 관리해야 한다는 것이 흠.
입출력 자원 관리와 스풀링
메모리 / 통신 / 프로세스 / 파일 을 관리하는 장치 관리자
입출력 명령을 만나게 되면 전용 프로세서가 처리하게 된다
스풀링(spooling) - 스풀러 프로그램이 인쇄하기 위한 파일을 저장하고 순서대로 출력하는 방식
-> 중앙처리장치 <-> 입출력 장치 간의 속도 차로 발생하는 대기 시간을 줄이기 위한 기법.
입출력 버퍼링
단일 / 더블 (두개) / 순환 (순환 큐 데이터 구조를 사용, 일 계속 함)
파일의 자원 관리
디스크의 분할 및 포맷
파일과 폴더 생성 / 이름 변경 / 복사, 삭제, 이동
드라이브와 폴더 내용 출력
· 문제 해결 과정
1. 문제 이해 및 분석하기
- 문제를 분석하여 도식화하고 구조화하여 문제 해결 방법을 찾는 데 활용한다.
2. 문제 해결 방법 찾기
- 거꾸로 해결하기, 작은 문제부터 해결하기, 여러 번의 시도와 실수를 통해 해결하기 등
다양한 방법을 이용한다
3. 문제 해결하기
- 2단계에서 선택한 방법을 이용, 문제를 해결한다. 컴퓨터를 이용할 때는 문제를 프로그램으로 구현한다.
4. 문제 해결 방법에 대해 평가하기
- 문제 해결 시간, 기억 장소의 사용량 등을 검사하여 문제 해결 방법을 평가 후 필요할 때는 다시 돌아간다.
글로 표현 / 표로 표현 / 그림과 기호로 표현
프로그래밍을 할 때는 3 / 4 단계가 바뀌는데
3. 알고리즘 설계
- 자연어 표현 / 의사 코드 표현 / 순서도 표현 / 프로그래밍 언어 표현
4. 프로그램 작성
- 프로그램을 작성, 오류 수정
· 추상화
문제를 해결하기 위해서 문제를 분해하고 중요한 부분을 끌어내는 것을 통해서 문제를 단순하고 쉽게 변환하는 과정.
연속적인 데이터를 이산적인 데이터로, 실제 현상을 절차화된 언어 / 숫자 / 수식으로 변환하는 것이 그 예시.
문제의 분해 - 주어진 문제를 여러 개로 쪼개자
모델링 - 문제 속 구성 요소를 단순화하고 구조화하는 것이다
· 알고리즘
문제를 해결하기 위한 절차나 방법을 알고리즘이라고 한다.
컴퓨터는 어떤 동작을 어떤 순서대로 할 지를 알지 못하기에 우리가 직접 논리적이고 체계적으로 정리해 알려줘야 한다.
자연어 표현 방법 - 일상 언어로 표현함, 쉽게 이해 가능하나 모호한 표현을 사용하면 이해하기 힘듬
순서도 표현 방법 - 미리 약속된 기호로 표현함, 흐름을 이해하기 쉽고 오류가 쉽게 발견되나, 커질수록 힘듬.
의사 코드 표현 방법 - 프로그래밍 언어처럼 적기, 특정 프로그래밍 언어를 몰라도 이해 가능. 다만 기초 지식은 필요
프로그래밍 언어 표현 방법 - 바로 실행 가능, 그러나 문법 이해 필요
순차 구조 - 시작부터 끝까지
선택 구조 - 조건에 따라 처리 내용이 달라짐
반복 구조 - 루프