CS/운영체제

    운영체제(OS) - 스레드(thread)

    스레드: 실행흐름(thread of execution)을 줄려서 스레드라 부름. 프로세스 1개당 1개의 스레드 프로세스 1개당 여러개의 스레드 프로세스와 스레드의 차이 프로세스: 프로세스는 프로세스가 새로운 프로세스를 생성하면 각 각 독립적인 메모리 영역을 소유한다. 이는 코드, 전역변수, 지역변수 모두에 해당한다. 스레드:  새로운 스레드를 생성 할 경우 부모와 자식은 stack(지역변수)만 다르고 독립적인 데이터 영역을 소유한다. 하지만 이외에 전역변수와, 코드는 같은 메모리 영역을 공유한다. 프로세스와 스레드 관련 함수. 프로세스: - fork() - exit() - waitpid() 스레드: - pthread_create() - pthread_exit() - pthread_join() - pt..

    운영체제(OS) - 프로세스(2)

    Running: CPU를 실제로 사용중인 상태 Ready: 언제든 실행 가능하지만 CPU는 다른 프로세스에 의해 점유되어 있기 떄문에 기다려야 하는 상태 Blocked(sleep): 외부 이벤트를 기다리고있는 상태 화살표 예) 1: 프로세스가 입력을 받기위해 Blocked상태로 변함 2: Scheduler에 의해 할당된 CPU사용시간을 모두 사용한 경우. 3: 2번 이후, Scheduler에 의해 다시 CPU제어권을 다시 넘겨받은 경우 4. 1번 이후 Input을 받고 CPU제어권을 넘겨받길 기다림. 프로세스 당 유지되는 정보들 PCB, Process Control Blocked 프로세스의 구현 인터럽트가 발생하면 OS의 가장 하위 레벨에서 발생하는일. 1. 인터럽트가 발생하면 2. 하드웨어 적으로 스택..

    운영체제(OS) - System Call

    시스템 호출(System Call) - 프로그램과 운영체제가 상호작용하기 위한 수단. - 프로그램한테 보여지는 운영체제 인터페이스 - System Call을 통해 프로그램은 필요로 하는 서비스를 운영체제 커널에 요청한다. 시스템 호출과 함수 호출 - 둘 다 요청한 사항을 수행하고 원래 프로그램으로 복귀 한다는 점은 같다. - 시스템 호출: 유저 모드(user mode)에서 커널모드(kernel mode)로 전환이 일어남. - 함수 호출: 유저 모드에서 계속 수행 시스템 호출 방법은 운영체제/기계마다 다르다. 어셈블리 언어(기계어) 수준에서 사용가능하며 고급언어(C언어) 수준에서는 시스템 호출로 이어지는 라이브러리가 제공된다. System Call의 일종인 File Management 해당 함수들은 운영체..

    운영체제(OS) - 운영체제란

    컴퓨터 시스템 컴퓨터 시스템은하드웨어 위에 운영체제가 작동한다 그 운영체제는 User interface frogram이 작동하며 그 위에 우리가 사용하는 프로그램들이 동작하는 식으로 운영된다 운영체제는 확장된 기계로서 지저분한(상세한) 하드웨어들을 감추고 추상화되고 깔끔하며 직관적이고 편리한 모습들을 사용자에게 제공해준다. 또한 자원 관리자의 역할을 한다. 각 프로그램은 시간적 측면에서 자원을 공유하고, 공간적 측면에서 자원을 공유한다. 시간적 측면에서 자원을 공유한다. -> CPU, printer 공간적 측면에서 자원을 공유한다. -> Memory 운영체제를 통해 한개의 CPU가 여러개의 프로그램에 접근할 수 있는 스케쥴링 역할을 하기 때문이다. 다중 프로그래밍: 실선은 CPU를 사용중인 구간, 점선..

    운영체제(OS) - 프로세스

    프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 프로세스는 프로그램, 입력, 출력, 상태를 갖는다. 동일한 프로그램을 2번 실행시키면 2개의 프로세스가 생성된다. 이들은 프로그램은 갖지만 입력, 출력, 상태는 실행할 때, 조건에 따라 달라질 수 있다. 프로세스 모델: *program counter: 다음 cpu가 수행해야 할 명령어의 주소를 저장하는곳. (a) 다중 프로그래밍  메모리에 여러개의 프로그램을 적재한다 -> 다중프로그래밍 cpu는 한개의 프로그램씩 순차적으로 수행한다. 한개의 프로세스씩 순차적으로 실행하기 때문에 프로그램 카운터는 한개로 충분하다. (b) 병렬처리 4개의 프로그램을 독립적으로 병렬처리를 한다. 독립적인 순차프로세스를 진행한다. 동시..