소개글
"운영체제, 인공지능, A스타 알고리즘, 탐색 방법"에 대한 내용입니다.
목차
1. 운영체제
1.1. 운영체제의 대표적인 유형
1.2. 프로세스와 쓰레드의 관계
2. 스케줄링 알고리즘 비교
2.1. FCFS(First-Come First-Served) 스케줄링
2.2. SRT(Shortest Remaining Time) 스케줄링
3. A* 알고리즘
3.1. A* 알고리즘의 탐색 방법과 평가함수
3.2. 8-퍼즐 문제에서의 A* 알고리즘 적용
3.3. 2칸 이동 연산자를 추가한 8-퍼즐 문제 적용
3.4. 최소 이동 횟수 보장
4. 참고 문헌
본문내용
1. 운영체제
1.1. 운영체제의 대표적인 유형
운영체제의 대표적인 유형은 일괄처리 운영체제, 시분할 운영체제, 실시간 운영체제, 분산 운영체제이다. 일괄처리 운영체제는 여러 작업을 한데 모아 순차적으로 처리하는 방식으로, 관리자의 역할을 자동화한 것이다. 시분할 운영체제는 여러 사용자의 프로그램을 조금씩 번갈아 실행하여 마치 동시에 구동되는 듯한 효과를 제공한다. 실시간 운영체제는 정해진 시간 내에 처리 결과를 도출할 수 있도록 설계되어, 우선순위가 높은 작업을 먼저 처리할 수 있다. 분산 운영체제는 두 대 이상의 컴퓨터 시스템이 네트워크로 연결되어 서로의 자원을 공유하며 동작하는 시스템을 관리한다.
1.2. 프로세스와 쓰레드의 관계
프로세스는 실행 중인 프로그램을 의미하며, CPU, 메모리, 파일, 입출력장치 등 실행에 필요한 자원이 할당된다. 전통적인 프로세스는 하나의 프로그램을 실행하기 위한 기본적인 단위이다. 프로세스는 자원 소유의 단위로 하나의 메모리 구조(스택 영역 포함)를 가진다. 또한 프로세스는 디스패칭의 단위로 하나의 제어흐름을 이룬다. 따라서 전통적인 프로세스 내에서는 다중처리가 불가능하다.
쓰레드는 프로세스에서 실행의 개념만 분리한 것으로 디스패칭의 단위가 된다. 하나의 프로세스 내에는 하나 이상의 쓰레드가 있을 수 있어, 다중 쓰레드를 생성하여 프로세스 내에서의 다중처리를 할 수 있다. 다만, 자원 소유의 단위는 여전히 프로세스가 된다. 또한 쓰레드는 실행에 필요한 최소한의 정보만 가지게 된다. 특히 쓰레드마다 실행이 다르기 때문에 서브프로그램 호출 과정도 다를 수 있으므로, 전통적인 프로세스 개념과 달리 필요한 정보는 쓰레드마다 스택에 별도로 저장해야 한다. 예를 들면, 하나의 프로세스에서 스택을 관리하면 쓰레드 간 스택 데이터가 충돌할 가능성이 크다. 따라서 쓰레드마다 스택을 별도로 관리하여 이러한 문제를 예방할 수 있다. 다만, 앞서 설명한 최소한의 정보를 제외한 나머지 정보는 프로세스에 두고 다른 쓰레드와 공유하게 된다. 이처럼 프로세스와 쓰레드는 자원 소유와 실행 단위에서 차이가 있다. 프로세스는 자원 소유의 단위이자 독립적인 실행 흐름인 반면, 쓰레드는 프로세스 내에서 실행의 개념만 분리된 실행 단위라고 할 수 있다.
2. 스케줄링 알고리즘 비교
2.1. FCFS(First-Come First-Served) 스케줄링
FCFS(First-Come First-Served) 스케줄링은 비선점 방식으로 스케줄링 알고리즘 중 가장 ...
참고 자료
김진욱, 이인복(2023). 운영체제. 한국방송통신대학교출판문화원.
이광형, 이병래(2025), 인공지능, 한국방송통신대학교출판문화원.
스튜어트 러셀 , 피터 노빅(2016), 인공지능. 1: 현대적 접근방식 3판, 제이펍.