-
단일 태스크와 멀티 태스크 컴퓨터가 처음 등장했을 때는 단일 태스크(하나의 프로그램을 순차적으로 실행하며, CPU가 다음 작업을 처리하려면 이전 작업이 끝나기를 기다림)만을 처리할 수 있었습니다. 이는 I/O bound 작업에서 CPU가 오래 idle 상태로 있다는 자원 낭비가 있습니다. 년대에 이르러 멀티프로그래밍과 멀티태스킹 개념이 도입되었습니다. 예를 들어,...
-
/etc/ 디렉토리의 sudoers 파일을 연다. 파일 맨 끝에 다음 내용을 추가한다. [사용자명] ALL=NOPASSWD: ALL NOPASSWD: ALL 부분을 NOPASSWD: [명령어], [명령어] 같은 형식으로 변경하면 특정 명령어를 입력할 때에만 sudo로 실행할 때 비밀번호가 실행되지 않게 할 수 있다.
-
which [명령어 실행 파일명]$ which bashwhich는 환경변수 PATH에 있는 경로 중 해당 명령어 실행 파일의 경로를 검색하는 리눅스 명령어. whereis [명령어 실행 파일명]$ whereis bashwhereis는 which와 같은 방식으로 파일에 관한 정보를 얻으나, 소스파일, 매뉴얼에 관한 정보까지 함께 얻어온다.
-
. 개요- systemd는 리눅스의 부팅부터 전반적인 서비스를 관리하는 프로세스로, 설치된 여러 패키지를 실행하거나 실행 중인 프로세스를 종료시키는 등의 작업을 수행하는 기능이 있다.- systemctl은 systemd가 프로세스를 관리하도록 하는 명령어로, 이 명령어를 통해 프로세스 관리에 관한 여러 동작을 수행할 수 있다.. systemctl의 명령어들 start [서비스명]: 서비스를 시작한다....
-
. mDNS 네트워크 프로토콜 계층 중 link 계층에서는 어떤 호스트/라우터가 자신과 연결돼 있는 인접한 다른 호스트/라우터들의 맥 주소 및 IP를 알기 위해 이에 관한 정보를 요청하는 프레임을 브로드캐스트 하며, 이러한 작업을 수행하는 프로토콜을 ARP라 한다. 한편 어떤 호스트의 OS의 관점에서도 OS가 그 호스트와 같은 네트워크 상에 있는 다른 호스트들의 IP를 알아내는 일이 필요...
-
. 디스크의 구조- 하드웨어로서 하나의 디스크는 여러 개의 원판(platter)가 하나의 축(spindle)으로 이어져 있으며, 각 원판에는 원판에 기록된 데이터를 읽을 수 있는 헤드가 하나씩 붙어 있다.- 원판에는 원판에 저장되는 데이터들을 구분하는 균일한 크기의 최소단위인 섹터가 여럿 모여 원판을 이룬다. 축으로부터 거리가 동일한 섹터들을 ‘같은 트랙에 있다’라고 하며, 서로 다른 원판에 있으나 반지름이 ...
-
. 파일의 디스크 저장 방식) contiguous allocation- 프로세스를 쪼개지 않고 메모리의 연속된 영역에 할당하는 방법과 유사하게, 파일을 쪼개지 않고 디스크의 연속된 영역에 할당하는 방법이다.- 프로세스의 메모리 연속 할당에서는 메모리를 균일한 크기로 나누는 방법이 있었지만, 파일의 디스크 연속 할당에서는 파일 하나의 크기가 워낙 천차만별이어서 그런 식으로 디스크 크기를 균일하게 나눠 할당하거나...
-
. 개요- 비휘발성 매체에 주로 저장되는, 속하는 디렉토리가 있고 이름 단위로 구분되는 정보의 모음(collection)을 파일이라 한다. 사용자는 OS를 통해 파일의 내용을 읽거나 변경할 수 있으며, 새로운 파일을 만들거나 기존 파일을 삭제할 수도 있다. 또한 OS는 파일을 디렉토리를 통해 트리와 유사한 계층 형태로 관리하며 파일을 저장하고 제어하는데, 이처럼 OS가 파일을 저장하고 제어하는 일련의 구조 내...
-
. demand paging- 대부분의 OS는 프로세스를 page 단위로 관리하여 가상메모리에 있는 page들을 요청이 있을 때에 메인 메모리로 옮겨와 이를 사용한다. 이처럼 가상메모리의 page를 필요할 때 메인 메모리로 옮겨와 사용하는 방식을 demand paging이라 한다.- demand paging을 사용하면 다음 이점이 있다.() 중요도가 높은 page를 메인 메모리로 옮겨와 사용하므로, I/O에 ...
-
. address binding 방법의 종류) compile time binding- 코드를 컴파일을 할 때 address binding을 같이 하는 경우가 있다. 하나의 컴퓨터에 하나의 프로그램만 동작하게 하는 경우에 사용할 수 있는 방법으로, 멀티프로그래밍이 지원되는 현재 대부분의 컴퓨터에서는 쓰이지 않는 바인딩 방법이다.) load time binding- 프로세스가 메모리에 처음 로드될 때 바인딩을 하...
-
. deadlock 발생 조건- 다음 네 조건이 모두 충족될 때 deadlock이 발생한다.() 자원을 한 순간에 한 프로세스만이 사용 가능(mutual exclusion)() 프로세스가 점유하고 있는 자원은 다른 프로세스가 강제로 빼앗을 수 없음(no preemption)() 어떤 프로세스가 수개의 자원을 동시에 점유해야 작업을 처리할 수 있는데 그 중 일부 자원만 점유하고 있다 할 때, 나머지 자원을 얻을...
-
. race condition- 여러 주체(스레드, 프로세스, CPU 등)가 접근할 수 있는 공유자원을 서로 다른 주체가 동시에 조작하는 경우(공유변수의 값을 한쪽에서는 증가시키고 다른 쪽에서는 감소시키는 경우 등)가 있을 수 있다. 이러한 상황이 나타나면 프로그램이 사용자가 의도한 것과 전혀 다른 결과를 낼 수 있다. 예를 들어 프로세스 A가 한 변수의 값을 가져가 이를 증가시키는 연산을 하고 결과값을 저장...
-
. 프로세스의 상태) running- 프로세스가 CPU를 점유하고 있는 상태. running 상태인 프로세스는 I/O 장치를 동기-블록 방식으로 사용하는 경우에는 blocked 상태로 전환되고, time-share OS 하에서 타이머에 설정된 시간이 경과하여 interrupt가 발생한 경우 ready 상태로 전환된다.- 커널은 프로세스 관리자로서 프로세스와 분류가 다른 것으로 보므로, I/O 장치를 사용하는 ...
-
. 개요- 프로그램의 시작부터 종료까지 시간 중 프로그램이 CPU를 점유하는 기간을 CPU burst라 하고, I/O 장치와의 소통으로 blocked 상태에 있는 기간을 I/O burst라 한다. CPU를 사용하는 모든 프로세스들이 CPU burst가 더 많은지 I/O burst가 더 많은지를 그래프로 그려보면, 대다수 프로세스가 I/O burst가 압도적으로 많고(이러한 프로세스들을 I/O-bound pro...
-
. 개요- 크게 CPU, 메모리, I/O 장치 셋으로 나눌 수 있다. (디스크는 파일을 열어 내용을 불러와 메모리에 올린다는 측면에서 입력장치로 볼 수도 있고, 반대로 CPU에 의해 처리된 결과를 전달받아 파일의 형태로 저장한다는 측면에서 출력장치로 볼 수도 있다.)- I/O 장치의 모든 정보가 곧바로 컴퓨터의 메인 메모리와 CPU로 전달되는 것은 아니고, 각각 그 장치를 직접 통제하는 device contr...
-
. OS 개요- OS는 컴퓨터 하드웨어에 직접 설치되어 ()컴퓨터 시스템의 자원을 효율적으로 관리하고 (이는 운영체제의 가장 핵심적 기능으로, OS를 다른 말로 ‘자원 관리자’라 칭할 수도 있다) ()사용자, 다른 소프트웨어, 하드웨어를 연결하여, 사용자가 컴퓨터 시스템을 편리하게 사용할 수 있게 하는 소프트웨어 계층을 말한다.- OS가 관리하는 자원은 메모리, CPU 등 하드웨어 자원과 프로세스, 파일 등 ...
OS & 리눅스 (16)