전체 글
-
입출력 시스템Computer Science/Operating System 2021. 1. 15. 13:53
질문 12.2 입출력 하드웨어 포트와 버스는 무엇인가? 포트 : 하드웨어와 컴퓨터 시스템을 연결하는 지점 버스 : 하나 이상의 장치들이 공동으로 연결되어 있는 선 컨트롤러란 무엇인가? 포트, 버스 또는 장치를 작동할 수 잇는 전자장치 집합체체 입출력 장치 컨트롤러는 어떻게 구성되어 있는가? 입력 레지스터 출력 레지스터 상태 레지스터 제어 레지스터 폴링 방식이란 무엇인가? 명령 준비 완료 비트가 설정된 것을 알아차릴 때까지, 호스트가 계속 검사 바쁜 대기 인터럽트 방식이란? CPU 하드웨어는 인터럽트 요청 라인이라고 불리는 선을 하나 갖는데, CPU는 매 명령어를 끝낸 다음 늘 이 선을 검사한다. 입출력 컨트롤러가 이 요청 라인에 신호를 보내면 CPU가 알아차리고 인터럽트 핸들러를 수행한다 트랩이란 무엇인..
-
대용량 저장장치 구조Computer Science/Operating System 2021. 1. 14. 23:20
질문 11.2 디스크 스케줄링 FCFS 스케줄링이란? 요청이 들어오는 순서대로 탐색합니다 매우 비효율적 SCAN 스케줄링이란? 디스크 암이 디스크의 한끝에서 시작하여 다른 끝으로 이동하며, 가는 길에 있는 요청을 모두 처리합니다. 다른 한쪽 끝에 도달하면 역방향으로 이동하면서 오는 길에 잇는 요청을 모두 처리합니다 C-SCAN 스케줄링이란? 헤드가 한쪽 끝에 도달했을 때 헤드 근처에 있는 요청들은 다 처리하면서 왔기 때문에 반대쪽에 가장 많은 요청이 몰려있을 것입니다 그렇기 때문에 헤드가 한쪽 끝에 도달했을 때 반대 방향으로 이동하는 것이 아닌 반대쪽 끝에서부터 다시 탐색합니다 11.5 저장장치 관리 드라이브를 사용하여 파일을 보유하려면 어떻게 하나요? 장치를 하나 이상의 블록 또는 페이지 그룹으로 파티..
-
가상 메모리Computer Science/Operating System 2021. 1. 14. 17:44
가상 메모리 질문 10.1 배경 가상 메모리란 무엇인가요? 가상 메모리란 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법입 프로그램을 일부분만 메모리에 올려놓고 사용할 수 있다면 어떤 이점이 있나요? 프로그램은 물리 메모리 크기에 의해 더는 제약을 받지 않습니다. 각 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행할 수 있습니다 프로그램을 메모리에 올리고 스왑하는 데 필요한 i/o횟수가 줄어들기 때문에 프로그램들이 빨리 실행됩니다 10.2 요구 페이징 요구 페이징이란? 보조저장장치에서 메모리로 프로그램을 적재할 때 필요한 페이지만 적재하는 기법 페이지가 메모리에 있는지 보조 저장 장치에 있는지 구분하는 방법은? 페이지 테이블에 유효-무효 비트를 만들어서 ..
-
메모리 관리Computer Science/Operating System 2021. 1. 14. 01:26
질문 9.1 배경 심볼릭 주소를 실제 물리 주소로 바인딩 하는 작업은 어느 시점에 일어나나요? 컴파일 시간 적재 시간 실행 시간 논리 주소와 물리 주소, 가상 주소는 무엇인가요? 논리 주소 : CPU가 생성하는 주소 물리 주소 : 메모리가 취급하게 되는 주소 가상 주소 : 논리 주소와 물리 주소가 다를 때 논리 주소 MMU(Memory Management Unit)이 하는 역할은 무엇인가요? 가상 주소를 물리 주소로 변환시켜 줍니다 재배치 레지스터란 무엇인가요? 가상 주소를 물리 주소로 변환시킬 때 기준이 되는 레지스터입니다 일반적으로 논리 주소 + 재배치 레지스터의 값이 물리 주소가 됩니다 9.2 연속 메모리 할당 운영체제와 다른 사용자 프로그램을 현재 수행중인 사용자 프로그램의 접근으로부터 보호하는 ..
-
교착 상태Computer Science/Operating System 2021. 1. 14. 00:56
질문 8.3 교착 상태 특성 교착 상태가 일어나는 필요조건들에는 어떤 것이 있나요? 상호 배제 : 최소한 하나의 자원이 비공유 모드로 점유되어야 합니다. 다른 스레드가 그 자원을 요청하면, 요청 스레드는 자원이 방출될 때까지 반드시 지연되어야 합니다. 점유하며 대기 : 스레드는 최소한 하나의 자원을 점유한 채, 현재 다른 스레드에 의해 점유된 자원을 추가로 얻기 위해 반드시 대기해야 합니다. 비선점 : 자원들은 강제적으로 방출될 수 없고, 점유하고 있는 스레드가 태스크를 종료한 후 그 스레드에 의해 자발적으로만 방출될 수 있습니다. 순환 대기 : 대기하고 있는 스레드들이 서로 연쇄적으로 서로의 자원을 대기합니다. 8.4 교착 상태 처리 방법 교착 상태를 처리하는 방법은 어떤 것이 있나요? 문제를 무시합니..
-
JVM 이해하기Computer Science/JAVA 2021. 1. 12. 16:30
JVM 이해하기 JVM(Java Virtual Machine) 자바 바이트 코드를 OS에 특화된 코드로 변환시켜서 실행합니다. 플랫폼에 종속적입니다 JRE(Java Virtual Machine) 자바 애플리케이션을 실행할 수 있도록 구성하는 배포판입니다 JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있습니다 개발 관련 도구는 포함하지 않습니다 JDK(Java Development Kit) JRE + 개발 관련 도구 소스 코드를 작성할 때 사용하는 자바 언어는 플랫폼에 종속되지 않습니다 JAVA 프로그래밍 언어 JDK에 들어있는 자바 컴파일러(Javac)를 사용하여 바이트코드(.class파일)로 컴파일 할 수 있음. JVM 구조 클래스 로더 시스템 .cl..
-
[백준]16639. 괄호 추가하기 3알고리즘/백준 2021. 1. 10. 23:58
[백준]16639. 괄호 추가하기 3 📄 링크 괄호 추가하기 3 💡 문제 분석 수식을 입력받고 여기에 괄호를 임의로 추가하여 최대값을 구하는 문제입니다 이 문제의 핵심은 괄호를 마음대로 넣을 수 있기 때문에 연산자의 우선순위는 아무런 의미가 없다는 것입니다. 그렇기 때문에 괄호를 넣을 수 있는 모든 방법으로 완전 탐색을 진행하고 캐시에 저장해서 해결하였습니다 하지만 이 문제에서 *연산을 할 때 음수 * 음수를 했을 때 가장 큰 수가 나올 수 있기 때문에 가장 작은 값들도 계속 저장을 하고 있어야합니다. Calc(max, max) Calc(max, min) Calc(min, max) Calc(min, min) 4가지 계산을 모두 해서 가장 큰 수는 max 캐시에, 가장 작은 수는 min 캐시에 저장합니다 ..
-
[백준]18500. 미네랄2알고리즘/백준 2021. 1. 10. 23:57
[백준]18500. 미네랄2 📄 링크 미네랄2 💡 문제 분석 이 문제를 풀기 위해 필요한 과정 막대를 던져 미네랄을 파괴했을 때 공중에 떠 있는 클러스터를 찾기 공중에 떠 있는 클러스터를 적절히 밑으로 내리기 1번 해결 바닥에 있는 미네랄들을 bfs해서 모두 방문 처리를 해줍니다 방문 처리가 되지 않은 미네랄들이 있다면 이는 공중에 떠있다는 것을 알 수 있습니다 2번 해결 공중에 떠 있는 클러스터를 ‘.’로 바꿔놓고 밑으로 내릴 수 있는 최대값을 구합니다 왼쪽, 오른쪽 번갈아 가며 막대를 던지기 때문에 불린을 바꿔가며 처리했습니다 막대를 던진 높이에 미네랄이 없을 때 예외처리를 하지 않아 많은 시행착오를 했습니다. 문제를 풀면서 미네랄을 파괴했을 때 2개 이상의 클러스터가 동시에 떨어지는 경우가 없다는 ..