전체 글
-
[운영체제] 프로세스 스케쥴링(Process Scheduling)운영체제 2021. 6. 8. 02:31
Multi-tasking "그건 제 잔상입니다만..?" - CPU '멀티테스킹'이라 하면 '동시에 일을 처리한다.'는 뜻으로 모두 알고 있을 것이다. 컴퓨터, 스마트폰 등 전자기기의 CPU에게 쓰이는 '멀티테스킹'이란 단어는 엄밀히 말하면 동시에 일을 처리하는 것은 아니다. CPU는 동시에 한가지 프로세스(CPU의 일의 단위)밖에 처리할 수 없다. 하지만, 여러 프로세스가 밀려있는데 한 가지 프로세스가 끝날 때까지 그것만 한다면, 유저 입장에서는 매우 답답하다고 느낄 것이다. 동영상을 켰더니, 동영상을 로드하느라 마우스를 움직이거나 키보드를 치는 행동을 뒤로 미룬다면, 마우스, 키보드 인풋은 동영상이 끝나고나서야 작동할 것이다. '멀티테스킹'은 CPU가 한 순간에 한가지 일만 처리하 되, 아주 짧은 텀을..
-
[운영체제] 컴퓨터의 부팅운영체제 2021. 6. 8. 01:39
컴퓨터의 부팅 전원버튼을 누르면 3초 안에 로그인 화면을 볼 수 있다. 이 과정은 어떤 방식으로 수행되는 것일까? 가장 먼저 전원이 들어오는 것은 CPU이다. 1. CPU는 ROM의 가장 앞에 있는 instruction을 읽어와서 수행한다. ROM의 가장 앞에 있는 instruction을 BIOS라고 한다. 컴퓨터를 킬 때마다 읽어와야 하기 때문에, 전원이 꺼지면 데이터가 삭제되는 RAM에는 BIOS를 저장할 수 없고, 항상 ROM의 가장 앞에 BIOS가 저장된다. 2. BIOS는 컴퓨터가 정상 부팅되어 작동될 수 있는 상태인지 확인하는 테스트를 수행한다. 이 테스트를 POST(Power On Self Test)라고 부른다. 테스트 과정에서 하드웨어 주변의 장치들이 모두 정상 연결되어 작동하는지 확인하며..
-
[운영체제] 운영체제란?운영체제 2021. 6. 8. 01:10
운영체제(Operating System) 운영체제는 유저가 사용하는 응용프로그램과 하드웨어 사이에서 발생하는 모든 상황을 처리하는 컴퓨터의 심장과도 같은 시스템 소프트웨어이다. 운영체제가 없으면 유저와 하드웨어는 소통할 수 없다. 운영체제는 프로세스관리, 메모리관리, 디스크관리, 네트워크 관리, 디바이스 관리, 입출력 관리 등의 일을 수행한다. 운영체제의 목적 1. 처리능력(Throughput): 일정 시간 내에 시스템이 처리하는 일의 양 2. 반환 시간(Turn Around Time): 시스템에 작업을 의뢰한 시간부터 처리 완료될 때까지 걸린 시간 3. 사용 가능도(Availability): 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도 4. 신뢰도(Reliability): 시스템이 주어진 문..
-
[컴퓨터구조] 이진수의 음수 표현컴퓨터구조 2021. 6. 7. 22:33
않이... 0과 1로 '-' 를 어떻게 표현해요..? MSB(Most Significant Bit) 가장 중요한 비트 2진수 예시를 하나 들어보겠습니다 10진수 33 33 = 32 + 1 = 2^5 + 2^0 = 2^5 * 1 + 2^4 * 0 + 2^3 * 0 + 2^2 * 0 + 2^1 * 0 + 2^0 * 1 밑줄 친 숫자만 모으면 2진수 100001 가 만들어집니다 밑줄 친 비트를 보면 왼쪽으로 갈 수록 2의 지수가 1씩 증가합니다. 즉 비트의 1이나 0이냐 여부에 따라서 수의 총합에 미치는 영향이 증가한다는 것입니다. 2진수 100001에서 1인 비트는 2개인데, 맨 왼쪽 비트와 맨 오른쪽 비트는 같은 1인데, 왼쪽 비트는 1이냐 0이냐에 따라 32 차이가 나고, 오른쪽 비트는 1이냐 0이냐에 ..
-
[프로그래밍 언어] 절차적 프로그래밍 vs 객체지향 프로그래밍프로그래밍 언어/개념 2021. 6. 7. 01:24
절차적 프로그래밍(Procedural Programming) 객체지향 프로그래밍에 대조되는 것으로 생각하여 절차지향 프로그래밍으로 알고 있는 사람이 많은데, "절차지향 프로그래밍 = 절차적 프로그래밍" 이며, "절차적 프로그래밍"이 조금 더 맞는 단어이다. 또한 절차적 프로그래밍과 객체지향 프로그래밍은 반대되는 단어가 절.대.로 아님을 이해해야 한다. 절차적 프로그래밍이란 Procedure(프로시저)를 이용하여 작성하는 프로그래밍 스타일이다. Procedure의 목록으로는 루틴, 서브루틴, 메소드, 함수 등이 있다. 간단히 보는 procedure의 목록 루틴: main 문 서브루틴: main문 밖에서 정의한 코드 블럭 중에 반환 값이 없는 것 함수: main문 밖에서 정의한 코드 블럭 중에 반환 값이 있..