본문 바로가기

전체 글12

시스템 콜(System call) 지난번에 인터럽트에 관하여 설명하였다. 인터럽트는 크게 하드웨어와 소프트웨어로 나눠지는데 이번에 설명할 시스템 콜(System call)은 소프트웨어 인터럽트의 한 종류이다. 우선, OS는 Dual Mode로 작동된다. Dual이란 2가지를 의미하는데 User Mode와 Kernel Mode이다. 일반 응용프로그램은 User Mode에서 실행되고, 응용프로그램이 시스템 자원 및 별도의 명령을 필요로 한다면 인터럽트를 발생시켜서 Kernel Mode 내부에서 실행하게끔 설계되어 있다. 좀 더 쉽게 말하자면, User Mode의 기능과 Kernel Mode의 기능이 나뉘어져 있고 Kernel Mode의 기능은 크리티컬한 기능이 많기때문에 User Mode에서 함부로 접근을 하지 못하게 막는 것이다. 이렇게 .. 2020. 4. 22.
카카오프렌즈 컬러링북(프로그래머스) 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/1829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 탐색 문제이다. 탐색 알고리즘 개념을 알고 있다면 굉장히 쉬운 문제이고, 모른다면 어려운 문제일 것이다. 문제에서 2차원 배열을 주고 영역의 개수와 영역의 넓이를 구하라고 했는데 이런 문제는 거의 탐색 기법으로 풀린다. 가장 기초적이면서 제일 잘 나오는 탐색 알고리즘은 DFS(백트래킹은 DFS와 거의 동일)와 BFS이다. 위의 문제는 두 알고리즘 중 아무거나 사용해도 무방하다. (단, 최단경로 문.. 2020. 4. 16.
인터럽트(Interrupt) 운영체제는 컴퓨터 하드웨어를 관리하고 프로그램의 수행을 제어하는 역할을 수행한다. 운영체제의 첫 부분을 보면 인터럽트라는 개념이 나온다. Interrupt의 뜻은 방해하다, 중단시키다 등의 의미가 있는데 해당 단어의 의미와 OS에서의 의미가 같다. 인터럽트란, 하드웨어 및 소프트웨어가 특정 업무를 수행하기 위하여 CPU에게 보내는 신호이다. (※ 여기서 특정 업무란, 반드시 OS의 처리가 필요한 경우를 말한다.) 인터럽트를 받은 CPU는 현재까지 수행하던 프로그램의 상태를 저장하고 Program Counter가 Interrupt Vector를 가리키게 한다. 그 다음 Interrupt Vector에서 ISR(Interrupt Service Routine)의 주소 값을 읽어 ISR로 점프한 후 해당 루틴을.. 2020. 4. 14.