본문 바로가기

프로그래밍/운영체제13

[OS] 운영체제 역사 (1950년대 ~ 최근) 💻 1950년대 ENIAC : 최초의 현대적 컴퓨터 (진공관 기반의 컴퓨터. 제 1세대 컴퓨터) 운영체제 없었음 하나의 응용 프로그램 실행 운영체제가 아직 없었기 때문에 응용 프로그램이 시스템 자원을 제어했음 💻 1960년대 초기 프로그램 종류도 좀 많아지고 사용자도 많아지기 시작 배치 처리 시스템 출현 (Batch processing system) 배치처리시스템을 기반으로 운영체제 출현 💡 배치처리 시스템 ▪ 여러 응용 프로그램을 등록해놓으면 순차적으로 실행하는 시스템. ▪ 응용프로그램들의 순서를 어떻게 정하냐에 따라서 실행속도가 달라지게 된다. 👎 단점 ▪ 컴퓨터 응답시간이 오래 걸릴 수 있다. (앞단의 실행시간이 많이 필요하는 응용프로그램이 실행될 경우) ▪ 실행 시간도 오래 걸릴 수 있다. (CP.. 2021. 9. 16.
[OS] 운영체제의 주변 장치 관리 📚 인터럽트(interrupt) - CPU나 메모리와 달리 인터럽트라는 메커니즘을 통해 관리하게 된다. - 주변 장치들은 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청하게 되는데, 이 때 발생시키는 신호를 인터럽트라고 한다. - CPU는 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행한다. 서비스를 완료한 후에는 원래 하던 일을 계속 수행하게 된다. - 예) 키보드 입력 🔔 운영체제의 주변장치 관리 1. 주변장치에서 인터럽트 발생 - 주변장치들은 각 장치마다 컨트롤러(controller)라는 그 장치에서 일어나는 업무에 대한 관리를 위한 일종의 작은 CPU를 가지고 있다. - 컨트롤러는 해당 장치에 대한 업무를 처리하고 이를 메인 CPU에 인터럽트를 발생시켜.. 2021. 1. 2.
[OS] Thread - 동기화, Critical Section, 뮤텍스와 세마포어, 교착상태와 기아상태 동기화(Synchronization) ◦작업들 사이에 실행시기를 맞추는 것 ◦여러 스레드가 동일한 자원 접근시 동기화 이슈 발생 ◦동일자원을 여러 스레드가 동시수정하면, 각 스레드 결과에 영향을 준다 동기화 이슈 해결방안 ◦Mutual exclusion(상호배제) ‣ 임계 자원(critical resource) g_count ‣ 임계 영역(critical section) lock.acquire(), lock.release() ◦여러 스레드가 변경하는 공유변수에 대해 Exclusive Access필요! (스레드가 동시 접근하지 못하게 막자) Mutex 와 Semaphore ◦Critical Section(임계영역)에 대한 접근을 막기위한 locking 필요 ◦Mutex(binary semaphore) ‣ .. 2020. 12. 20.
[OS] Thread - 개념, 장단점, Thread vs Process Thread(스레드) ◦ 프로세스 내에서 동작하는 여러 실행의 흐름 ◦ 프로세스가 밧줄이라면 스레드는 밧줄을 이루는 실! ◦ 스레드들은 동시 실행가능 ◦ 프로세스 안에 있으므로 프로세스의 데이터를 모두 접근 가능 ◦ 각기 실행이 가능한 stack존재 Thread 장점 1. 사용자에 대한 응답성 향상 2. 자원 공유 효율 ‣ IPC기법과 같이 프로세스 간 자원공유를 위해 번거로운 작업이 필요없음 ‣ 프로세스 안에 있으므로 프로세스의 데이터 모두 접근 가능 Thread 단점 1. 스레드 중 한 스레드만 문제가 있어도 전체 프로세스가 영향을 받음 2. 스레드를 많이 생성하면 Context Switching이 많이 일어나 성능저하 Process와 Thread 비교 2020. 12. 20.
[OS] 프로세스간 커뮤니케이션(IPC 기법 - 파이프, 메시지큐, 공유메모리) IPC(Inter Process Communication) 프로세스간 커뮤니케이션하기 위한 통신방법 대부분의 IPC기법은 커널공간을 활용하는 것임. (커널영역은 공유하기 때문) 1. Pipe (파이프) ◦ 단방향 통신 ◦ fork() 로 자식프로세스 만들었을때 부모와 자식간의 통신 2. 메시지 큐 (message queue) ◦ 양방향 통신 ◦ 부모/자식간 통신X 어느 프로세스간에 데이터 송수신 가능 3. 공유 메모리 (shared memory) ◦ kernel영역에 메모리 공간을 만들어서 그 공간에 대한 주소값을 여러 프로세스가 key값으로 접근가능 모두 커널공간을 활용해서 프로세스간 데이터 공유 2020. 12. 20.
[OS] 컨텍스트 스위칭(Context Switching, PCB, PC, SP) Context Switching 🅰process ---> 🅱process ⬆ Scheduler가 프로세스를 바꿔주는 메커니즘을 컨텍스트 스위칭이라고 한다. 선행으로 알아야 할 개념 (PCB, PC, SP) PCB (Process Control Block) ‣ ProcessID, PC, SP 등 프로세스가 실행중인 상태정보를 구조화해서 저장하는 곳 PC (Program Counter) ‣ 다음에 실행할 명령어의 주소 저장, 제어 레지스터* SP (Stack Pointer) ‣ 현재 스택 영역에서 가장 마지막 부분(가장 최근에 저장된)을 가르킴, 데이터 레지스터* * 제어 레지스터 : 현재의 동작에 이어 다음 단계에 수행할 명령어의 주소를 갖는 레지스터 * 데이터 레지스터 : 데이터의 일시적인 저장에 사용되.. 2020. 12. 20.
반응형