본문 바로가기

개발/운영체제

(4)
프로세스 간 통신 프로세스간 통신의 종류 프로세스 내부 데이터 통신: 하나의 프로세스 내에 2개 이상의 스레드가 공유 자원을 통해 데이터를 주고 받는 것이다. 프로세스 간 데이터 통신: 같은 컴퓨터에 있는 프로세스들 간에 데이터 통신을 의미한다. 공유 파일 또는 운영체제가 제공하는 파이프를 사용하여 통신한다. 네트워크를 이용한 데이터 통신: 여러 컴퓨터가 네트워크로 연결되어 데이터를 주고 받는 것을 의미한다. 이 경우에는 소켓을 이용하여 데이터를 주고 받는다. 통신의 종류 여기서 더 자세히 알아볼 것은 단방향 통신의 통신법이다. 전역 변수를 통한 통신은 단방향 통신이다. 이를 양방향 통신으로 구현하려면 전역변수를 2개 사용해야한다. 전역 변수를 사용한 통신의 가장 큰 문제는 프로세스끼리 데이터를 주고 받을 때, 언제 데이..
프로세스란 프로세스란? 운영체제의 입장에서 프로세스는 하나의 작업 단위이다. 프로세스는 프로그램이 실행을 위해 메모리에 올라온 동적인 상태를 말한다. 프로세스의 처리 방식 프로세스의 처리 방식에는 크게 일괄 작업 방식과, 시분할 작업 방식이 있다. 여기서는 프로세스의 시분할 작업 방식에 대해서 더 자세히 정리하겠다. 또한 앞으로 설명하는 과정은 전부 시분할 작업 방식 아래에서 프로세스가 처리되는 과정에 대해 설명할 것이다. - 생성상태 프로그램이 실행되기 위해서는 먼저 메모리에 올라와야 한다. (프로그램이 실행되기 위해선 메모리에 올라와야 한다. 이것을 폰노이만 구조라고 한다.) - 메모리에 올라오는 과정: 먼저 소스 코드를 컴파일 한다.(이 결과로 실행 모듈 즉, 실행 파일이 생긴다.) -> 실행 파일을 로딩한다..
운영체제란? 운영체제의 역할 운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리해주는 소프트웨어이다. 우선 운영체제의 자원 관리란 사용자가 직접 자원에 접근하는 것을 막음으로써 자원을 보호하고 관리하는 것이다. 예를 들어 사용자가 컴퓨터 하드웨어나 메모리에 직접 접근했을 때 실수로 건드려선 안될 것을 건드린다면, 그것은 컴퓨터 자체에 치명적인 문제를 일으킬 수 있기 때문이다. 이를 방지하기 위해 컴퓨터는 응용 프로그램과 사용자에게 모든 자원을 숨긴다. 운영체제는 사용자와 컴퓨터 사이에 인터페이스 역할을 해준다. 즉, 사용자가 운영체제 인터페이스를 통해서만 컴퓨터 자우너을 사용할 수 있다. 커널과 인터페이스 커널: 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의..
시분할 시스템 시분할 시스템 운영체제의 역사: 진공관(0과 1)사용 -> 일괄 작업 시스템 -> 운영체제의 등장 -> 대화형 시스템 -> 다중 프로그래밍 기술 개발 -> 시분할 시스템 -> 개인용 컴퓨터의 등장 -> 분산 시스템 -> 클라이언트/서버 시스템(웹) -> IoT, 클라우드 컴퓨팅 등등... 이 중 시분할 시스템만 한번 다루고 가겠다. 시분할 시스템이란? 여러 작업을 조금씩 처리하여 작업이 동시에 이루어지는 것처럼 보이게 하는 것이다. 시분할 시스템을 만들기 위해 먼저 다중 프로그래밍이라는 기술이 개발되었다. 다중 프로그래밍이란 하나의 CPU로 여러 작업을 동시에 실행하는 기술이다. CPU 사용 시간을 아주 잘게 쪼개어 여러 작업에 나누어주는 것이다. 이때 잘게 나뉜 시간 한 조각을 타임 슬라이스라고 한다...