본문 바로가기

전체 글18

인터럽트에 대한 설명 이번 포스팅에서는 컴퓨터 시스템상의 인터럽트 개념에 대하여 자세하 알아보겠다. 인터럽트란 기본적으로 단일 컴퓨터는 오직 한번에 한 개의 컴퓨터 명령어만을 수행할 수 있다. 그러나, 인터럽트 신호가 있기 때문에, 다른 프로그램이나 명령문을 수행할 수 있는 순서를 가질 수 있다. 이렇게 하는 것을 멀티태스킹이라고 하는데, 이것은 사용자로 하여금 동시에 여러 개의 작업을 할 수 있도록 해준다. 컴퓨터는 사용자가 효과적으로 일할 수 있게끔, 단순히 그 프로그램들이 수행될 순서를 관리한다. 물론, 컴퓨터는 사용자의 모든 작업들이 동시에 수행되는 것처럼 보이게 빠른 속도로 동작한다. 인터럽트는 컴퓨터에 장착된 장치나 컴퓨터 내의 프로그램으로부터 오는 신호로서 운영체계가 하던 일을 멈추고 다음에 무엇을 할 것인지를 .. 2021. 12. 12.
리눅스의 개념과 장점에 대하여 알아보자 리눅스는 유닉스를 모태로 한다. 유닉스에서 나왔다고 봐도 되지만, 리눅스는 사실 오픈소스 개념으로 출시되고, 리눅스 제단이 있지만, 누구가 소스를 수정하여 재컴파일할 수 있다. 이번 포스팅에서는 리눅스의 기본개념에 대하여 자세히 알아보겠다. 리눅스란 리눅스로는 주로 서버를 운영한다. 서버라는 것을 잠시 설명하자면, 우리가 사용하는 스마트폰은 클라이언트에 해당된다. 클라이언트는 우리가 보는 화면에 떠 있는 프로그램 또는 기기를 말하고, 서버는 그 클라이언트의 요청에 응답해주는 것을 말한다. 대표적으로 카카오톡을 보면 우리가 사용하는 것은 클라이언트이다. 그리고 카카오톡을 다시 설치해도 로그인을 하면 데이터가 그대로 있는 것을 볼 수 있다. 그 데이터들은 서버에 저장이 되어 있던 것들이다. 일부 데이터가 지.. 2021. 12. 12.
CPU 스케줄링에 대하여 알아보자 CPU 스케줄링은 항상 실행중인 프로세스를 가지게 함으로써 중앙처리장치 이용률을 최대화 하는 것에 목적을 두고 있다. 이번 포스팅에서는 CPU 스케줄링의 개념과 스케줄링 알고리즘에 대하여 자세히 알아보겠다. 스케줄링이란 프로세스와 쓰레드 포스팅에서 배운거처럼, 한정된 자원으로 최대한 성능을 이끌어내기 위해서는 CPU를 적절하고 효율적으로 사용해야 한다. 따라서 OS는 실행 대기중인 프로세스들에게 자원 배정을 적절히 하여 시스템의 성능을 끌어올릴 수 있다. 선점 스케줄링(Preemptive Scheduling) OS가 나서서 CPU사용권을 '선점'하고, 특정 요건에 따라 각 프로세스의 요청이 있을 때 프로세스에게 분배하는 방식이다. 가장 자원이 필요한 프로세스에게 CPU를 분배하며 상황에 따라 강제로 회수.. 2021. 12. 12.
멀티 쓰레드(Thread)의 장점과 문제점 이번 포스팅에서는 멀티 쓰레드에 대하여 알아보고 멀티 쓰레드의 장점과 문제점에 대하여 좀더 구체적으로 살펴보겠다. 쓰레드(Thread)의 개념 쓰레드는 프로세스를 여러 개로 나눈 조각과 갖다고 설명할 수 있다. 워드를 사용하는 경우를 예로 들자. 워드에서 글자를 입력하는 동안 파일을 주기적으로 자동저장하고, 내용을 프린터에 출력하고 있고, 입력하는 동안 자동으로 맞춤법 검사를 수행한다. 사용자의 입력을 받는 동안 행하는 이 모든 작업들은 각각의 쓰레드에 의해서 이루어진다. 글자를 입력 받는 쓰레드, 파일을 디스크에 저장하는 쓰레드, 출력할 내용을 프린터에 보내는 쓰레드, 입력하는 동안 맞춤법 검사를 수행하는 쓰레드 등이 있다. 즉, 워드라는 큰 프로세스 하나에 여러 개의 쓰레드가 모여있는 것이다. 실제로.. 2021. 12. 12.