본문 바로가기

분류 전체보기12

운영체제의 5가지 특징 및 부트스트랩 로더(Bootstrap loader) 운영체제에는 5가지의 특징이 있다. 1. Simple structure > 모듈화 및 계층화가 되어있지 않은 원시 OS의 구조로, User 프로그램의 하드웨어 접근이 가능하였다. 현대의 OS는 복잡한 구조로 설계되어 있으므로 해당 구조는 사용되지 않는다. 2. Layered approach > OS를 계층화하여(Level 0 ~ N) 각 계층별로 역할을 분리한 구조로, 상위계층은 하위계층의 기능을 사용할 수 있다. 디버깅과 프로그램 구현에 있어 용이하다. 그 이유는 프로그래머가 하위 계층의 내용을 전혀 신경쓰지 않아도 되기 때문이다. 3. Microkernel > 기존의 Kernel 기능(프로세스, 메모리, 파일시스템, 입출력장치 관리)에서 핵심인 프로세스 기능만 남겨두고 나머지 기능들은 User 레벨로.. 2020. 4. 24.
프로세스(Process) 프로세스는 무엇일까? 프로세스를 얘기하려면 먼저 프로그램을 얘기해야한다. 프로그램이란 디스크에 존재하는 Passive한 Entity를 의미한다. 그렇다면 프로세스는? 프로세스도 프로그램이라고 생각하면 된다. 하지만!!!! 이름에서도 다르듯이 프로세스는 실행중인 프로그램이다. 즉, 프로세스란 메모리에 load되어 실행중인 프로그램이다. 결국 실행중이냐 아니냐의 차이로 둘을 구분 지을 수 있다. 프로세스는 메모리에 load되기 때문에, 자신만의 고유한 address space를 가지게 된다. address space란 Stack, Heap, Data, Text 영역 및 PCB, Program Counter 등이 있다. Stack과 Heap의 영역은 서로 줄어들었다 늘었다를 반복한다. 각각 담당하는 내용은 이.. 2020. 4. 23.
시스템 콜(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.