야미스터디/OS (8) 썸네일형 리스트형 [OS] 커널 (Kernel) 📌 운영체제란? 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다 운영체제는 커널과 인터페이스로 구성된다 커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로 운영체제의 성능을 좌우한다 인터페이스 : 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다 운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있다 커널 (Kernel) 운영체제의 가장 기본이.. [OS] 시스템 콜 (System Call) 📌 https://yummy0102.tistory.com/484 [쉬운코드] 인터럽트와 시스템 콜 https://www.youtube.com/watch?v=v30ilCpITnY 위 영상을 보며 공부한 내용을 정리한 글입니다! 🎭 User mode & Kernel mode 1) User mode 우리가 개발하는 프로그램은 일반적으로 User mode에서 실행된다 2) User.. yummy0102.tistory.com 우선 시스템 콜의 이해도를 높이기 위해 유튜브 영상을 통해 공부했다! 🖐 들어가기 전에 운영체제는 인터럽트 구동식이다 즉, 인터럽트가 발생하여 신호를 보내는 구조이다 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심하다 따라서 항상 필요한 부분만을 전원이.. [OS] 인터럽트와 시스템 콜 https://www.youtube.com/watch?v=v30ilCpITnY 위 영상을 보며 공부한 내용을 정리한 글입니다! 🎭 User mode & Kernel mode 1) User mode 우리가 개발하는 프로그램은 일반적으로 User mode에서 실행된다 2) User mode -> Kernel mode 프로그램 실행 중에 인터럽트(interrupt)가 발생하거나 시스템 콜(system call)을 호출하게 되면 Kernel mode로 전환된다 3) Kernel mode 방금 전까지 User mode에서 실행되고 있던 프로그램의 현재 CPU 상태를 저장한다 커널이 인터럽트나 시스템 콜을 직접 처리한다 즉, CPU에서 커널 코드가 실행된다 처리가 완료되면 중단됐던 프로그램의 CPU 상태를 복원한다.. [OS] Critical Section 📌 공유 자원 (Shared resource) 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다 공유 자원은 공동으로 이용되기 때문에 누가 언제 어떻게 데이터를 읽거나 쓰거나에 따라 그 결과가 달라질 수 있다 경쟁 조건 (race condition) 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황을 말하며, 공유 자원 접근 순서에 따라 실행 결과가 달라지는 상황을 말한다 즉, 타이밍이나 순서 등이 결과 값에 영향을 줄 수 있는 상태를 말한다 -> 동시성 문제 Critical Section (임계 영역) 임계구역 또는 공유변수 영역이라고 불린다 이는 병렬 컴퓨팅에서 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원(자료 구조 또는 장치)을 접근하는 코드의 일부를 말한다 .. [OS] 세마포어와 뮤텍스 📌 🖐 개념 정리 공유 자원 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다 이는 공동으로 이용되는 자원이기 때문에 누가 언제 데이터를 쓰거나 읽느냐에 따라 결과가 달라질 수 있다 경쟁 조건 (race condition) 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황 여러 프로세스/스레드가 동시에 같은 데이터를 조작할 때 타이밍이나 접근 순서에 따라 결과가 달라질 수 있는 상황 즉, 두 개 이상의 프로세스가 하나의 자원을 두고 서로 이용하려고 경쟁하는 상황이다 동기화 (synchronization) 여러 프로세스/스레드를 동시에 실행해도 공유 데이터의 일관성을 유지하는 것 임계 구역 (Critical Section) 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로.. [OS] 교착 상태 (Dead Lock) 📌 교착 상태(Dead Lock) 란? 운영체제에서 데드락이란, 시스템 자원에 대한 요구가 뒤엉킨 상태이다 즉, 두 개 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제로, 문제 해결을 위한 일반적인 방법은 아직 없다 교착 상태가 발생하는 조건 데드락이 발생하기 위한 필요 조건은 4가지로, 여기서 하나라도 충족되지 않으면 데드락이 발생하지 않는다 그러나 4가지 조건을 모두 충족했다고 무조건 교착상태가 발생하는 것은 아니다! 아래의 조건 중 순환대기는 점유대기와 비선점을 만족해야 성립하기 때문에, 서로 완전히 독립적인 것은 아니다 1. 상호 배제 .. [OS] 프로세스, 스레드 정리 (feat. 쉬운 코딩) https://www.youtube.com/watch?v=QmtYKZC0lMU&t=2s 오늘의 토픽 🌱 공부하다가 이 영상을 봤는데 너무 유익해서 간단하고 쉽게 영상 내용 정리하고 마저 공부하려고! 프로그램 (program) 컴퓨터가 실행할 수 있는 명령어들의 집합 프로세스 (process) 컴퓨터에서 실행 중인 프로그램 각각의 프로세스는 독립된 메모리 공간을 할당 받는다 명렁어들과 데이터를 갖는다 CPU (Central Processing Unit) 명령어를 실행하는 연산 장치 메인 메모리 (main memory) 프로세스가 CPU에서 실행되기 위해 대기하는 곳 I/O (Input/Output) 파일을 읽고 쓰거나, 네트워크의 어딘가와 데이터를 주고 받는 것 입출력 장치와 데이터를 주고 받는 것 단일 .. [OS] 멀티프로세스와 멀티스레드 차이 📌 프로그램 > 프로세스 > 스레드 먼저 프로세스와 스레드에 대해 알려면 프로그램에 대해 이해하고 넘어가야 한다! 프로그램이란 파일이 저장 장치에 저장되어 있지만, 메모리에는 올라가 있지 않은 정적인 상태를 말한다 모든 프로그램은 운영체제로부터 실행되기 위한 메모리 공간을 할당받아야 실행될 수 있다 그러나 프로그램은 아직 운영체제가 독립적인 메모리 공간을 할당해주지 않아서 실행되지 않고 가만히, 정적인 상태로 있는 것이다 즉, 프로그램은 아직 실행되지 않은 파일 그 자체를 의미한다 그리고 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적인 상태라고 한다 또한 이 상태의 프로그램을 프로세스라고 한다 프로세스(Process) 란? 프로세스는 간단하게 말하면 프로그램을 실행한 .. 이전 1 다음